{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "975e146a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8a22371a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the RNN model\n",
    "class RNN(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, output_size):\n",
    "        super(RNN, self).__init__()\n",
    "\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x, hidden):\n",
    "        output, hidden = self.rnn(x, hidden)\n",
    "        output = self.fc(output)\n",
    "        return output, hidden\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "7af26c1e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 256)\n",
      "(1, 100)\n",
      "(256, 100)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('EB.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u1']\n",
    "\n",
    "# Use the loaded variables as needed\n",
    "print(x.shape)\n",
    "print(t.shape)\n",
    "print(u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u), np.max(u), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Burgers')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "62ea666e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Toy problem data\n",
    "input_size = 256\n",
    "hidden_size = 32\n",
    "output_size = 256\n",
    "sequence_length = 79\n",
    "batch_size = 1\n",
    "num_epochs = 20000\n",
    "\n",
    "\n",
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "\n",
    "\n",
    "\n",
    "input_data = u[:,0:79]\n",
    "target_data = u[:,1:80]\n",
    "\n",
    "test_data = u[:,79:99]\n",
    "test_target = u[:,80:100]\n",
    "\n",
    "\n",
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 20, input_size).float()\n",
    "test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3ca0f418",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.0231\n",
      "Epoch: 20/20000, Loss: 0.0106\n",
      "Epoch: 30/20000, Loss: 0.0053\n",
      "Epoch: 40/20000, Loss: 0.0028\n",
      "Epoch: 50/20000, Loss: 0.0015\n",
      "Epoch: 60/20000, Loss: 0.0009\n",
      "Epoch: 70/20000, Loss: 0.0007\n",
      "Epoch: 80/20000, Loss: 0.0005\n",
      "Epoch: 90/20000, Loss: 0.0011\n",
      "Epoch: 100/20000, Loss: 0.0006\n",
      "Epoch: 110/20000, Loss: 0.0004\n",
      "Epoch: 120/20000, Loss: 0.0003\n",
      "Epoch: 130/20000, Loss: 0.0003\n",
      "Epoch: 140/20000, Loss: 0.0003\n",
      "Epoch: 150/20000, Loss: 0.0002\n",
      "Epoch: 160/20000, Loss: 0.0002\n",
      "Epoch: 170/20000, Loss: 0.0002\n",
      "Epoch: 180/20000, Loss: 0.0002\n",
      "Epoch: 190/20000, Loss: 0.0002\n",
      "Epoch: 200/20000, Loss: 0.0002\n",
      "Epoch: 210/20000, Loss: 0.0002\n",
      "Epoch: 220/20000, Loss: 0.0002\n",
      "Epoch: 230/20000, Loss: 0.0010\n",
      "Epoch: 240/20000, Loss: 0.0002\n",
      "Epoch: 250/20000, Loss: 0.0003\n",
      "Epoch: 260/20000, Loss: 0.0002\n",
      "Epoch: 270/20000, Loss: 0.0001\n",
      "Epoch: 280/20000, Loss: 0.0001\n",
      "Epoch: 290/20000, Loss: 0.0001\n",
      "Epoch: 300/20000, Loss: 0.0001\n",
      "Epoch: 310/20000, Loss: 0.0001\n",
      "Epoch: 320/20000, Loss: 0.0001\n",
      "Epoch: 330/20000, Loss: 0.0001\n",
      "Epoch: 340/20000, Loss: 0.0001\n",
      "Epoch: 350/20000, Loss: 0.0001\n",
      "Epoch: 360/20000, Loss: 0.0001\n",
      "Epoch: 370/20000, Loss: 0.0001\n",
      "Epoch: 380/20000, Loss: 0.0001\n",
      "Epoch: 390/20000, Loss: 0.0001\n",
      "Epoch: 400/20000, Loss: 0.0001\n",
      "Epoch: 410/20000, Loss: 0.0001\n",
      "Epoch: 420/20000, Loss: 0.0001\n",
      "Epoch: 430/20000, Loss: 0.0001\n",
      "Epoch: 440/20000, Loss: 0.0001\n",
      "Epoch: 450/20000, Loss: 0.0001\n",
      "Epoch: 460/20000, Loss: 0.0000\n",
      "Epoch: 470/20000, Loss: 0.0000\n",
      "Epoch: 480/20000, Loss: 0.0000\n",
      "Epoch: 490/20000, Loss: 0.0007\n",
      "Epoch: 500/20000, Loss: 0.0003\n",
      "Epoch: 510/20000, Loss: 0.0002\n",
      "Epoch: 520/20000, Loss: 0.0001\n",
      "Epoch: 530/20000, Loss: 0.0001\n",
      "Epoch: 540/20000, Loss: 0.0001\n",
      "Epoch: 550/20000, Loss: 0.0000\n",
      "Epoch: 560/20000, Loss: 0.0000\n",
      "Epoch: 570/20000, Loss: 0.0000\n",
      "Epoch: 580/20000, Loss: 0.0000\n",
      "Epoch: 590/20000, Loss: 0.0000\n",
      "Epoch: 600/20000, Loss: 0.0000\n",
      "Epoch: 610/20000, Loss: 0.0000\n",
      "Epoch: 620/20000, Loss: 0.0002\n",
      "Epoch: 630/20000, Loss: 0.0000\n",
      "Epoch: 640/20000, Loss: 0.0000\n",
      "Epoch: 650/20000, Loss: 0.0000\n",
      "Epoch: 660/20000, Loss: 0.0000\n",
      "Epoch: 670/20000, Loss: 0.0000\n",
      "Epoch: 680/20000, Loss: 0.0000\n",
      "Epoch: 690/20000, Loss: 0.0000\n",
      "Epoch: 700/20000, Loss: 0.0000\n",
      "Epoch: 710/20000, Loss: 0.0000\n",
      "Epoch: 720/20000, Loss: 0.0000\n",
      "Epoch: 730/20000, Loss: 0.0000\n",
      "Epoch: 740/20000, Loss: 0.0000\n",
      "Epoch: 750/20000, Loss: 0.0000\n",
      "Epoch: 760/20000, Loss: 0.0000\n",
      "Epoch: 770/20000, Loss: 0.0000\n",
      "Epoch: 780/20000, Loss: 0.0000\n",
      "Epoch: 790/20000, Loss: 0.0000\n",
      "Epoch: 800/20000, Loss: 0.0000\n",
      "Epoch: 810/20000, Loss: 0.0002\n",
      "Epoch: 820/20000, Loss: 0.0002\n",
      "Epoch: 830/20000, Loss: 0.0001\n",
      "Epoch: 840/20000, Loss: 0.0001\n",
      "Epoch: 850/20000, Loss: 0.0000\n",
      "Epoch: 860/20000, Loss: 0.0000\n",
      "Epoch: 870/20000, Loss: 0.0000\n",
      "Epoch: 880/20000, Loss: 0.0000\n",
      "Epoch: 890/20000, Loss: 0.0000\n",
      "Epoch: 900/20000, Loss: 0.0000\n",
      "Epoch: 910/20000, Loss: 0.0000\n",
      "Epoch: 920/20000, Loss: 0.0000\n",
      "Epoch: 930/20000, Loss: 0.0000\n",
      "Epoch: 940/20000, Loss: 0.0000\n",
      "Epoch: 950/20000, Loss: 0.0002\n",
      "Epoch: 960/20000, Loss: 0.0001\n",
      "Epoch: 970/20000, Loss: 0.0000\n",
      "Epoch: 980/20000, Loss: 0.0000\n",
      "Epoch: 990/20000, Loss: 0.0000\n",
      "Epoch: 1000/20000, Loss: 0.0000\n",
      "Epoch: 1010/20000, Loss: 0.0000\n",
      "Epoch: 1020/20000, Loss: 0.0000\n",
      "Epoch: 1030/20000, Loss: 0.0001\n",
      "Epoch: 1040/20000, Loss: 0.0000\n",
      "Epoch: 1050/20000, Loss: 0.0000\n",
      "Epoch: 1060/20000, Loss: 0.0000\n",
      "Epoch: 1070/20000, Loss: 0.0000\n",
      "Epoch: 1080/20000, Loss: 0.0001\n",
      "Epoch: 1090/20000, Loss: 0.0000\n",
      "Epoch: 1100/20000, Loss: 0.0000\n",
      "Epoch: 1110/20000, Loss: 0.0000\n",
      "Epoch: 1120/20000, Loss: 0.0000\n",
      "Epoch: 1130/20000, Loss: 0.0000\n",
      "Epoch: 1140/20000, Loss: 0.0000\n",
      "Epoch: 1150/20000, Loss: 0.0001\n",
      "Epoch: 1160/20000, Loss: 0.0001\n",
      "Epoch: 1170/20000, Loss: 0.0000\n",
      "Epoch: 1180/20000, Loss: 0.0000\n",
      "Epoch: 1190/20000, Loss: 0.0000\n",
      "Epoch: 1200/20000, Loss: 0.0000\n",
      "Epoch: 1210/20000, Loss: 0.0000\n",
      "Epoch: 1220/20000, Loss: 0.0000\n",
      "Epoch: 1230/20000, Loss: 0.0001\n",
      "Epoch: 1240/20000, Loss: 0.0002\n",
      "Epoch: 1250/20000, Loss: 0.0000\n",
      "Epoch: 1260/20000, Loss: 0.0000\n",
      "Epoch: 1270/20000, Loss: 0.0000\n",
      "Epoch: 1280/20000, Loss: 0.0000\n",
      "Epoch: 1290/20000, Loss: 0.0000\n",
      "Epoch: 1300/20000, Loss: 0.0002\n",
      "Epoch: 1310/20000, Loss: 0.0000\n",
      "Epoch: 1320/20000, Loss: 0.0000\n",
      "Epoch: 1330/20000, Loss: 0.0000\n",
      "Epoch: 1340/20000, Loss: 0.0000\n",
      "Epoch: 1350/20000, Loss: 0.0000\n",
      "Epoch: 1360/20000, Loss: 0.0000\n",
      "Epoch: 1370/20000, Loss: 0.0001\n",
      "Epoch: 1380/20000, Loss: 0.0003\n",
      "Epoch: 1390/20000, Loss: 0.0001\n",
      "Epoch: 1400/20000, Loss: 0.0000\n",
      "Epoch: 1410/20000, Loss: 0.0000\n",
      "Epoch: 1420/20000, Loss: 0.0000\n",
      "Epoch: 1430/20000, Loss: 0.0000\n",
      "Epoch: 1440/20000, Loss: 0.0000\n",
      "Epoch: 1450/20000, Loss: 0.0000\n",
      "Epoch: 1460/20000, Loss: 0.0001\n",
      "Epoch: 1470/20000, Loss: 0.0001\n",
      "Epoch: 1480/20000, Loss: 0.0001\n",
      "Epoch: 1490/20000, Loss: 0.0000\n",
      "Epoch: 1500/20000, Loss: 0.0000\n",
      "Epoch: 1510/20000, Loss: 0.0000\n",
      "Epoch: 1520/20000, Loss: 0.0000\n",
      "Epoch: 1530/20000, Loss: 0.0000\n",
      "Epoch: 1540/20000, Loss: 0.0000\n",
      "Epoch: 1550/20000, Loss: 0.0000\n",
      "Epoch: 1560/20000, Loss: 0.0000\n",
      "Epoch: 1570/20000, Loss: 0.0002\n",
      "Epoch: 1580/20000, Loss: 0.0000\n",
      "Epoch: 1590/20000, Loss: 0.0000\n",
      "Epoch: 1600/20000, Loss: 0.0000\n",
      "Epoch: 1610/20000, Loss: 0.0000\n",
      "Epoch: 1620/20000, Loss: 0.0000\n",
      "Epoch: 1630/20000, Loss: 0.0000\n",
      "Epoch: 1640/20000, Loss: 0.0001\n",
      "Epoch: 1650/20000, Loss: 0.0001\n",
      "Epoch: 1660/20000, Loss: 0.0000\n",
      "Epoch: 1670/20000, Loss: 0.0000\n",
      "Epoch: 1680/20000, Loss: 0.0000\n",
      "Epoch: 1690/20000, Loss: 0.0000\n",
      "Epoch: 1700/20000, Loss: 0.0000\n",
      "Epoch: 1710/20000, Loss: 0.0000\n",
      "Epoch: 1720/20000, Loss: 0.0002\n",
      "Epoch: 1730/20000, Loss: 0.0001\n",
      "Epoch: 1740/20000, Loss: 0.0001\n",
      "Epoch: 1750/20000, Loss: 0.0000\n",
      "Epoch: 1760/20000, Loss: 0.0000\n",
      "Epoch: 1770/20000, Loss: 0.0000\n",
      "Epoch: 1780/20000, Loss: 0.0000\n",
      "Epoch: 1790/20000, Loss: 0.0000\n",
      "Epoch: 1800/20000, Loss: 0.0002\n",
      "Epoch: 1810/20000, Loss: 0.0002\n",
      "Epoch: 1820/20000, Loss: 0.0001\n",
      "Epoch: 1830/20000, Loss: 0.0000\n",
      "Epoch: 1840/20000, Loss: 0.0000\n",
      "Epoch: 1850/20000, Loss: 0.0000\n",
      "Epoch: 1860/20000, Loss: 0.0000\n",
      "Epoch: 1870/20000, Loss: 0.0000\n",
      "Epoch: 1880/20000, Loss: 0.0000\n",
      "Epoch: 1890/20000, Loss: 0.0001\n",
      "Epoch: 1900/20000, Loss: 0.0002\n",
      "Epoch: 1910/20000, Loss: 0.0000\n",
      "Epoch: 1920/20000, Loss: 0.0000\n",
      "Epoch: 1930/20000, Loss: 0.0000\n",
      "Epoch: 1940/20000, Loss: 0.0000\n",
      "Epoch: 1950/20000, Loss: 0.0000\n",
      "Epoch: 1960/20000, Loss: 0.0000\n",
      "Epoch: 1970/20000, Loss: 0.0000\n",
      "Epoch: 1980/20000, Loss: 0.0003\n",
      "Epoch: 1990/20000, Loss: 0.0001\n",
      "Epoch: 2000/20000, Loss: 0.0000\n",
      "Epoch: 2010/20000, Loss: 0.0000\n",
      "Epoch: 2020/20000, Loss: 0.0000\n",
      "Epoch: 2030/20000, Loss: 0.0000\n",
      "Epoch: 2040/20000, Loss: 0.0000\n",
      "Epoch: 2050/20000, Loss: 0.0000\n",
      "Epoch: 2060/20000, Loss: 0.0000\n",
      "Epoch: 2070/20000, Loss: 0.0001\n",
      "Epoch: 2080/20000, Loss: 0.0002\n",
      "Epoch: 2090/20000, Loss: 0.0001\n",
      "Epoch: 2100/20000, Loss: 0.0000\n",
      "Epoch: 2110/20000, Loss: 0.0000\n",
      "Epoch: 2120/20000, Loss: 0.0000\n",
      "Epoch: 2130/20000, Loss: 0.0000\n",
      "Epoch: 2140/20000, Loss: 0.0000\n",
      "Epoch: 2150/20000, Loss: 0.0002\n",
      "Epoch: 2160/20000, Loss: 0.0001\n",
      "Epoch: 2170/20000, Loss: 0.0000\n",
      "Epoch: 2180/20000, Loss: 0.0000\n",
      "Epoch: 2190/20000, Loss: 0.0000\n",
      "Epoch: 2200/20000, Loss: 0.0000\n",
      "Epoch: 2210/20000, Loss: 0.0000\n",
      "Epoch: 2220/20000, Loss: 0.0000\n",
      "Epoch: 2230/20000, Loss: 0.0001\n",
      "Epoch: 2240/20000, Loss: 0.0000\n",
      "Epoch: 2250/20000, Loss: 0.0000\n",
      "Epoch: 2260/20000, Loss: 0.0000\n",
      "Epoch: 2270/20000, Loss: 0.0000\n",
      "Epoch: 2280/20000, Loss: 0.0000\n",
      "Epoch: 2290/20000, Loss: 0.0000\n",
      "Epoch: 2300/20000, Loss: 0.0007\n",
      "Epoch: 2310/20000, Loss: 0.0002\n",
      "Epoch: 2320/20000, Loss: 0.0002\n",
      "Epoch: 2330/20000, Loss: 0.0001\n",
      "Epoch: 2340/20000, Loss: 0.0000\n",
      "Epoch: 2350/20000, Loss: 0.0000\n",
      "Epoch: 2360/20000, Loss: 0.0000\n",
      "Epoch: 2370/20000, Loss: 0.0000\n",
      "Epoch: 2380/20000, Loss: 0.0000\n",
      "Epoch: 2390/20000, Loss: 0.0000\n",
      "Epoch: 2400/20000, Loss: 0.0000\n",
      "Epoch: 2410/20000, Loss: 0.0001\n",
      "Epoch: 2420/20000, Loss: 0.0002\n",
      "Epoch: 2430/20000, Loss: 0.0001\n",
      "Epoch: 2440/20000, Loss: 0.0000\n",
      "Epoch: 2450/20000, Loss: 0.0000\n",
      "Epoch: 2460/20000, Loss: 0.0000\n",
      "Epoch: 2470/20000, Loss: 0.0000\n",
      "Epoch: 2480/20000, Loss: 0.0000\n",
      "Epoch: 2490/20000, Loss: 0.0000\n",
      "Epoch: 2500/20000, Loss: 0.0000\n",
      "Epoch: 2510/20000, Loss: 0.0000\n",
      "Epoch: 2520/20000, Loss: 0.0001\n",
      "Epoch: 2530/20000, Loss: 0.0000\n",
      "Epoch: 2540/20000, Loss: 0.0000\n",
      "Epoch: 2550/20000, Loss: 0.0000\n",
      "Epoch: 2560/20000, Loss: 0.0000\n",
      "Epoch: 2570/20000, Loss: 0.0000\n",
      "Epoch: 2580/20000, Loss: 0.0000\n",
      "Epoch: 2590/20000, Loss: 0.0000\n",
      "Epoch: 2600/20000, Loss: 0.0001\n",
      "Epoch: 2610/20000, Loss: 0.0000\n",
      "Epoch: 2620/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 2630/20000, Loss: 0.0000\n",
      "Epoch: 2640/20000, Loss: 0.0000\n",
      "Epoch: 2650/20000, Loss: 0.0000\n",
      "Epoch: 2660/20000, Loss: 0.0001\n",
      "Epoch: 2670/20000, Loss: 0.0000\n",
      "Epoch: 2680/20000, Loss: 0.0000\n",
      "Epoch: 2690/20000, Loss: 0.0000\n",
      "Epoch: 2700/20000, Loss: 0.0000\n",
      "Epoch: 2710/20000, Loss: 0.0000\n",
      "Epoch: 2720/20000, Loss: 0.0001\n",
      "Epoch: 2730/20000, Loss: 0.0000\n",
      "Epoch: 2740/20000, Loss: 0.0000\n",
      "Epoch: 2750/20000, Loss: 0.0000\n",
      "Epoch: 2760/20000, Loss: 0.0000\n",
      "Epoch: 2770/20000, Loss: 0.0000\n",
      "Epoch: 2780/20000, Loss: 0.0001\n",
      "Epoch: 2790/20000, Loss: 0.0001\n",
      "Epoch: 2800/20000, Loss: 0.0000\n",
      "Epoch: 2810/20000, Loss: 0.0000\n",
      "Epoch: 2820/20000, Loss: 0.0000\n",
      "Epoch: 2830/20000, Loss: 0.0000\n",
      "Epoch: 2840/20000, Loss: 0.0000\n",
      "Epoch: 2850/20000, Loss: 0.0001\n",
      "Epoch: 2860/20000, Loss: 0.0002\n",
      "Epoch: 2870/20000, Loss: 0.0001\n",
      "Epoch: 2880/20000, Loss: 0.0000\n",
      "Epoch: 2890/20000, Loss: 0.0000\n",
      "Epoch: 2900/20000, Loss: 0.0000\n",
      "Epoch: 2910/20000, Loss: 0.0000\n",
      "Epoch: 2920/20000, Loss: 0.0001\n",
      "Epoch: 2930/20000, Loss: 0.0000\n",
      "Epoch: 2940/20000, Loss: 0.0000\n",
      "Epoch: 2950/20000, Loss: 0.0000\n",
      "Epoch: 2960/20000, Loss: 0.0000\n",
      "Epoch: 2970/20000, Loss: 0.0000\n",
      "Epoch: 2980/20000, Loss: 0.0000\n",
      "Epoch: 2990/20000, Loss: 0.0001\n",
      "Epoch: 3000/20000, Loss: 0.0001\n",
      "Epoch: 3010/20000, Loss: 0.0000\n",
      "Epoch: 3020/20000, Loss: 0.0000\n",
      "Epoch: 3030/20000, Loss: 0.0000\n",
      "Epoch: 3040/20000, Loss: 0.0000\n",
      "Epoch: 3050/20000, Loss: 0.0000\n",
      "Epoch: 3060/20000, Loss: 0.0000\n",
      "Epoch: 3070/20000, Loss: 0.0002\n",
      "Epoch: 3080/20000, Loss: 0.0001\n",
      "Epoch: 3090/20000, Loss: 0.0001\n",
      "Epoch: 3100/20000, Loss: 0.0000\n",
      "Epoch: 3110/20000, Loss: 0.0000\n",
      "Epoch: 3120/20000, Loss: 0.0000\n",
      "Epoch: 3130/20000, Loss: 0.0000\n",
      "Epoch: 3140/20000, Loss: 0.0002\n",
      "Epoch: 3150/20000, Loss: 0.0000\n",
      "Epoch: 3160/20000, Loss: 0.0000\n",
      "Epoch: 3170/20000, Loss: 0.0000\n",
      "Epoch: 3180/20000, Loss: 0.0000\n",
      "Epoch: 3190/20000, Loss: 0.0000\n",
      "Epoch: 3200/20000, Loss: 0.0000\n",
      "Epoch: 3210/20000, Loss: 0.0003\n",
      "Epoch: 3220/20000, Loss: 0.0001\n",
      "Epoch: 3230/20000, Loss: 0.0000\n",
      "Epoch: 3240/20000, Loss: 0.0000\n",
      "Epoch: 3250/20000, Loss: 0.0000\n",
      "Epoch: 3260/20000, Loss: 0.0004\n",
      "Epoch: 3270/20000, Loss: 0.0001\n",
      "Epoch: 3280/20000, Loss: 0.0000\n",
      "Epoch: 3290/20000, Loss: 0.0000\n",
      "Epoch: 3300/20000, Loss: 0.0000\n",
      "Epoch: 3310/20000, Loss: 0.0000\n",
      "Epoch: 3320/20000, Loss: 0.0000\n",
      "Epoch: 3330/20000, Loss: 0.0000\n",
      "Epoch: 3340/20000, Loss: 0.0000\n",
      "Epoch: 3350/20000, Loss: 0.0000\n",
      "Epoch: 3360/20000, Loss: 0.0003\n",
      "Epoch: 3370/20000, Loss: 0.0002\n",
      "Epoch: 3380/20000, Loss: 0.0001\n",
      "Epoch: 3390/20000, Loss: 0.0000\n",
      "Epoch: 3400/20000, Loss: 0.0000\n",
      "Epoch: 3410/20000, Loss: 0.0000\n",
      "Epoch: 3420/20000, Loss: 0.0000\n",
      "Epoch: 3430/20000, Loss: 0.0000\n",
      "Epoch: 3440/20000, Loss: 0.0003\n",
      "Epoch: 3450/20000, Loss: 0.0001\n",
      "Epoch: 3460/20000, Loss: 0.0000\n",
      "Epoch: 3470/20000, Loss: 0.0000\n",
      "Epoch: 3480/20000, Loss: 0.0000\n",
      "Epoch: 3490/20000, Loss: 0.0000\n",
      "Epoch: 3500/20000, Loss: 0.0000\n",
      "Epoch: 3510/20000, Loss: 0.0000\n",
      "Epoch: 3520/20000, Loss: 0.0002\n",
      "Epoch: 3530/20000, Loss: 0.0000\n",
      "Epoch: 3540/20000, Loss: 0.0000\n",
      "Epoch: 3550/20000, Loss: 0.0000\n",
      "Epoch: 3560/20000, Loss: 0.0000\n",
      "Epoch: 3570/20000, Loss: 0.0000\n",
      "Epoch: 3580/20000, Loss: 0.0000\n",
      "Epoch: 3590/20000, Loss: 0.0000\n",
      "Epoch: 3600/20000, Loss: 0.0003\n",
      "Epoch: 3610/20000, Loss: 0.0001\n",
      "Epoch: 3620/20000, Loss: 0.0000\n",
      "Epoch: 3630/20000, Loss: 0.0000\n",
      "Epoch: 3640/20000, Loss: 0.0000\n",
      "Epoch: 3650/20000, Loss: 0.0000\n",
      "Epoch: 3660/20000, Loss: 0.0000\n",
      "Epoch: 3670/20000, Loss: 0.0000\n",
      "Epoch: 3680/20000, Loss: 0.0000\n",
      "Epoch: 3690/20000, Loss: 0.0001\n",
      "Epoch: 3700/20000, Loss: 0.0001\n",
      "Epoch: 3710/20000, Loss: 0.0000\n",
      "Epoch: 3720/20000, Loss: 0.0000\n",
      "Epoch: 3730/20000, Loss: 0.0000\n",
      "Epoch: 3740/20000, Loss: 0.0000\n",
      "Epoch: 3750/20000, Loss: 0.0004\n",
      "Epoch: 3760/20000, Loss: 0.0001\n",
      "Epoch: 3770/20000, Loss: 0.0000\n",
      "Epoch: 3780/20000, Loss: 0.0000\n",
      "Epoch: 3790/20000, Loss: 0.0000\n",
      "Epoch: 3800/20000, Loss: 0.0000\n",
      "Epoch: 3810/20000, Loss: 0.0000\n",
      "Epoch: 3820/20000, Loss: 0.0002\n",
      "Epoch: 3830/20000, Loss: 0.0000\n",
      "Epoch: 3840/20000, Loss: 0.0000\n",
      "Epoch: 3850/20000, Loss: 0.0000\n",
      "Epoch: 3860/20000, Loss: 0.0000\n",
      "Epoch: 3870/20000, Loss: 0.0000\n",
      "Epoch: 3880/20000, Loss: 0.0000\n",
      "Epoch: 3890/20000, Loss: 0.0001\n",
      "Epoch: 3900/20000, Loss: 0.0000\n",
      "Epoch: 3910/20000, Loss: 0.0000\n",
      "Epoch: 3920/20000, Loss: 0.0000\n",
      "Epoch: 3930/20000, Loss: 0.0000\n",
      "Epoch: 3940/20000, Loss: 0.0000\n",
      "Epoch: 3950/20000, Loss: 0.0001\n",
      "Epoch: 3960/20000, Loss: 0.0001\n",
      "Epoch: 3970/20000, Loss: 0.0000\n",
      "Epoch: 3980/20000, Loss: 0.0000\n",
      "Epoch: 3990/20000, Loss: 0.0000\n",
      "Epoch: 4000/20000, Loss: 0.0000\n",
      "Epoch: 4010/20000, Loss: 0.0001\n",
      "Epoch: 4020/20000, Loss: 0.0001\n",
      "Epoch: 4030/20000, Loss: 0.0000\n",
      "Epoch: 4040/20000, Loss: 0.0000\n",
      "Epoch: 4050/20000, Loss: 0.0000\n",
      "Epoch: 4060/20000, Loss: 0.0000\n",
      "Epoch: 4070/20000, Loss: 0.0000\n",
      "Epoch: 4080/20000, Loss: 0.0000\n",
      "Epoch: 4090/20000, Loss: 0.0004\n",
      "Epoch: 4100/20000, Loss: 0.0001\n",
      "Epoch: 4110/20000, Loss: 0.0000\n",
      "Epoch: 4120/20000, Loss: 0.0000\n",
      "Epoch: 4130/20000, Loss: 0.0000\n",
      "Epoch: 4140/20000, Loss: 0.0000\n",
      "Epoch: 4150/20000, Loss: 0.0000\n",
      "Epoch: 4160/20000, Loss: 0.0000\n",
      "Epoch: 4170/20000, Loss: 0.0001\n",
      "Epoch: 4180/20000, Loss: 0.0001\n",
      "Epoch: 4190/20000, Loss: 0.0001\n",
      "Epoch: 4200/20000, Loss: 0.0000\n",
      "Epoch: 4210/20000, Loss: 0.0000\n",
      "Epoch: 4220/20000, Loss: 0.0000\n",
      "Epoch: 4230/20000, Loss: 0.0000\n",
      "Epoch: 4240/20000, Loss: 0.0001\n",
      "Epoch: 4250/20000, Loss: 0.0000\n",
      "Epoch: 4260/20000, Loss: 0.0000\n",
      "Epoch: 4270/20000, Loss: 0.0000\n",
      "Epoch: 4280/20000, Loss: 0.0000\n",
      "Epoch: 4290/20000, Loss: 0.0000\n",
      "Epoch: 4300/20000, Loss: 0.0000\n",
      "Epoch: 4310/20000, Loss: 0.0000\n",
      "Epoch: 4320/20000, Loss: 0.0000\n",
      "Epoch: 4330/20000, Loss: 0.0002\n",
      "Epoch: 4340/20000, Loss: 0.0001\n",
      "Epoch: 4350/20000, Loss: 0.0000\n",
      "Epoch: 4360/20000, Loss: 0.0000\n",
      "Epoch: 4370/20000, Loss: 0.0000\n",
      "Epoch: 4380/20000, Loss: 0.0000\n",
      "Epoch: 4390/20000, Loss: 0.0000\n",
      "Epoch: 4400/20000, Loss: 0.0000\n",
      "Epoch: 4410/20000, Loss: 0.0002\n",
      "Epoch: 4420/20000, Loss: 0.0000\n",
      "Epoch: 4430/20000, Loss: 0.0000\n",
      "Epoch: 4440/20000, Loss: 0.0000\n",
      "Epoch: 4450/20000, Loss: 0.0000\n",
      "Epoch: 4460/20000, Loss: 0.0000\n",
      "Epoch: 4470/20000, Loss: 0.0000\n",
      "Epoch: 4480/20000, Loss: 0.0000\n",
      "Epoch: 4490/20000, Loss: 0.0003\n",
      "Epoch: 4500/20000, Loss: 0.0002\n",
      "Epoch: 4510/20000, Loss: 0.0002\n",
      "Epoch: 4520/20000, Loss: 0.0529\n",
      "Epoch: 4530/20000, Loss: 0.0285\n",
      "Epoch: 4540/20000, Loss: 0.0111\n",
      "Epoch: 4550/20000, Loss: 0.0046\n",
      "Epoch: 4560/20000, Loss: 0.0020\n",
      "Epoch: 4570/20000, Loss: 0.0010\n",
      "Epoch: 4580/20000, Loss: 0.0006\n",
      "Epoch: 4590/20000, Loss: 0.0005\n",
      "Epoch: 4600/20000, Loss: 0.0004\n",
      "Epoch: 4610/20000, Loss: 0.0003\n",
      "Epoch: 4620/20000, Loss: 0.0005\n",
      "Epoch: 4630/20000, Loss: 0.0005\n",
      "Epoch: 4640/20000, Loss: 0.0003\n",
      "Epoch: 4650/20000, Loss: 0.0003\n",
      "Epoch: 4660/20000, Loss: 0.0002\n",
      "Epoch: 4670/20000, Loss: 0.0002\n",
      "Epoch: 4680/20000, Loss: 0.0003\n",
      "Epoch: 4690/20000, Loss: 0.0002\n",
      "Epoch: 4700/20000, Loss: 0.0002\n",
      "Epoch: 4710/20000, Loss: 0.0001\n",
      "Epoch: 4720/20000, Loss: 0.0001\n",
      "Epoch: 4730/20000, Loss: 0.0001\n",
      "Epoch: 4740/20000, Loss: 0.0001\n",
      "Epoch: 4750/20000, Loss: 0.0001\n",
      "Epoch: 4760/20000, Loss: 0.0001\n",
      "Epoch: 4770/20000, Loss: 0.0001\n",
      "Epoch: 4780/20000, Loss: 0.0001\n",
      "Epoch: 4790/20000, Loss: 0.0001\n",
      "Epoch: 4800/20000, Loss: 0.0001\n",
      "Epoch: 4810/20000, Loss: 0.0001\n",
      "Epoch: 4820/20000, Loss: 0.0001\n",
      "Epoch: 4830/20000, Loss: 0.0001\n",
      "Epoch: 4840/20000, Loss: 0.0001\n",
      "Epoch: 4850/20000, Loss: 0.0001\n",
      "Epoch: 4860/20000, Loss: 0.0001\n",
      "Epoch: 4870/20000, Loss: 0.0001\n",
      "Epoch: 4880/20000, Loss: 0.0001\n",
      "Epoch: 4890/20000, Loss: 0.0001\n",
      "Epoch: 4900/20000, Loss: 0.0001\n",
      "Epoch: 4910/20000, Loss: 0.0001\n",
      "Epoch: 4920/20000, Loss: 0.0001\n",
      "Epoch: 4930/20000, Loss: 0.0001\n",
      "Epoch: 4940/20000, Loss: 0.0001\n",
      "Epoch: 4950/20000, Loss: 0.0001\n",
      "Epoch: 4960/20000, Loss: 0.0001\n",
      "Epoch: 4970/20000, Loss: 0.0000\n",
      "Epoch: 4980/20000, Loss: 0.0000\n",
      "Epoch: 4990/20000, Loss: 0.0000\n",
      "Epoch: 5000/20000, Loss: 0.0000\n",
      "Epoch: 5010/20000, Loss: 0.0001\n",
      "Epoch: 5020/20000, Loss: 0.0000\n",
      "Epoch: 5030/20000, Loss: 0.0000\n",
      "Epoch: 5040/20000, Loss: 0.0000\n",
      "Epoch: 5050/20000, Loss: 0.0000\n",
      "Epoch: 5060/20000, Loss: 0.0001\n",
      "Epoch: 5070/20000, Loss: 0.0000\n",
      "Epoch: 5080/20000, Loss: 0.0000\n",
      "Epoch: 5090/20000, Loss: 0.0000\n",
      "Epoch: 5100/20000, Loss: 0.0000\n",
      "Epoch: 5110/20000, Loss: 0.0000\n",
      "Epoch: 5120/20000, Loss: 0.0001\n",
      "Epoch: 5130/20000, Loss: 0.0000\n",
      "Epoch: 5140/20000, Loss: 0.0000\n",
      "Epoch: 5150/20000, Loss: 0.0000\n",
      "Epoch: 5160/20000, Loss: 0.0001\n",
      "Epoch: 5170/20000, Loss: 0.0000\n",
      "Epoch: 5180/20000, Loss: 0.0000\n",
      "Epoch: 5190/20000, Loss: 0.0001\n",
      "Epoch: 5200/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 5210/20000, Loss: 0.0000\n",
      "Epoch: 5220/20000, Loss: 0.0000\n",
      "Epoch: 5230/20000, Loss: 0.0000\n",
      "Epoch: 5240/20000, Loss: 0.0001\n",
      "Epoch: 5250/20000, Loss: 0.0001\n",
      "Epoch: 5260/20000, Loss: 0.0000\n",
      "Epoch: 5270/20000, Loss: 0.0000\n",
      "Epoch: 5280/20000, Loss: 0.0000\n",
      "Epoch: 5290/20000, Loss: 0.0000\n",
      "Epoch: 5300/20000, Loss: 0.0000\n",
      "Epoch: 5310/20000, Loss: 0.0000\n",
      "Epoch: 5320/20000, Loss: 0.0000\n",
      "Epoch: 5330/20000, Loss: 0.0000\n",
      "Epoch: 5340/20000, Loss: 0.0000\n",
      "Epoch: 5350/20000, Loss: 0.0000\n",
      "Epoch: 5360/20000, Loss: 0.0000\n",
      "Epoch: 5370/20000, Loss: 0.0000\n",
      "Epoch: 5380/20000, Loss: 0.0000\n",
      "Epoch: 5390/20000, Loss: 0.0001\n",
      "Epoch: 5400/20000, Loss: 0.0001\n",
      "Epoch: 5410/20000, Loss: 0.0000\n",
      "Epoch: 5420/20000, Loss: 0.0000\n",
      "Epoch: 5430/20000, Loss: 0.0001\n",
      "Epoch: 5440/20000, Loss: 0.0000\n",
      "Epoch: 5450/20000, Loss: 0.0000\n",
      "Epoch: 5460/20000, Loss: 0.0000\n",
      "Epoch: 5470/20000, Loss: 0.0001\n",
      "Epoch: 5480/20000, Loss: 0.0000\n",
      "Epoch: 5490/20000, Loss: 0.0000\n",
      "Epoch: 5500/20000, Loss: 0.0000\n",
      "Epoch: 5510/20000, Loss: 0.0000\n",
      "Epoch: 5520/20000, Loss: 0.0000\n",
      "Epoch: 5530/20000, Loss: 0.0000\n",
      "Epoch: 5540/20000, Loss: 0.0000\n",
      "Epoch: 5550/20000, Loss: 0.0000\n",
      "Epoch: 5560/20000, Loss: 0.0000\n",
      "Epoch: 5570/20000, Loss: 0.0000\n",
      "Epoch: 5580/20000, Loss: 0.0000\n",
      "Epoch: 5590/20000, Loss: 0.0000\n",
      "Epoch: 5600/20000, Loss: 0.0000\n",
      "Epoch: 5610/20000, Loss: 0.0000\n",
      "Epoch: 5620/20000, Loss: 0.0001\n",
      "Epoch: 5630/20000, Loss: 0.0000\n",
      "Epoch: 5640/20000, Loss: 0.0000\n",
      "Epoch: 5650/20000, Loss: 0.0000\n",
      "Epoch: 5660/20000, Loss: 0.0001\n",
      "Epoch: 5670/20000, Loss: 0.0000\n",
      "Epoch: 5680/20000, Loss: 0.0000\n",
      "Epoch: 5690/20000, Loss: 0.0000\n",
      "Epoch: 5700/20000, Loss: 0.0000\n",
      "Epoch: 5710/20000, Loss: 0.0000\n",
      "Epoch: 5720/20000, Loss: 0.0001\n",
      "Epoch: 5730/20000, Loss: 0.0001\n",
      "Epoch: 5740/20000, Loss: 0.0000\n",
      "Epoch: 5750/20000, Loss: 0.0000\n",
      "Epoch: 5760/20000, Loss: 0.0000\n",
      "Epoch: 5770/20000, Loss: 0.0000\n",
      "Epoch: 5780/20000, Loss: 0.0001\n",
      "Epoch: 5790/20000, Loss: 0.0001\n",
      "Epoch: 5800/20000, Loss: 0.0000\n",
      "Epoch: 5810/20000, Loss: 0.0000\n",
      "Epoch: 5820/20000, Loss: 0.0000\n",
      "Epoch: 5830/20000, Loss: 0.0000\n",
      "Epoch: 5840/20000, Loss: 0.0001\n",
      "Epoch: 5850/20000, Loss: 0.0000\n",
      "Epoch: 5860/20000, Loss: 0.0000\n",
      "Epoch: 5870/20000, Loss: 0.0000\n",
      "Epoch: 5880/20000, Loss: 0.0000\n",
      "Epoch: 5890/20000, Loss: 0.0001\n",
      "Epoch: 5900/20000, Loss: 0.0000\n",
      "Epoch: 5910/20000, Loss: 0.0000\n",
      "Epoch: 5920/20000, Loss: 0.0000\n",
      "Epoch: 5930/20000, Loss: 0.0000\n",
      "Epoch: 5940/20000, Loss: 0.0000\n",
      "Epoch: 5950/20000, Loss: 0.0001\n",
      "Epoch: 5960/20000, Loss: 0.0000\n",
      "Epoch: 5970/20000, Loss: 0.0000\n",
      "Epoch: 5980/20000, Loss: 0.0000\n",
      "Epoch: 5990/20000, Loss: 0.0000\n",
      "Epoch: 6000/20000, Loss: 0.0000\n",
      "Epoch: 6010/20000, Loss: 0.0001\n",
      "Epoch: 6020/20000, Loss: 0.0000\n",
      "Epoch: 6030/20000, Loss: 0.0000\n",
      "Epoch: 6040/20000, Loss: 0.0000\n",
      "Epoch: 6050/20000, Loss: 0.0000\n",
      "Epoch: 6060/20000, Loss: 0.0002\n",
      "Epoch: 6070/20000, Loss: 0.0000\n",
      "Epoch: 6080/20000, Loss: 0.0000\n",
      "Epoch: 6090/20000, Loss: 0.0000\n",
      "Epoch: 6100/20000, Loss: 0.0000\n",
      "Epoch: 6110/20000, Loss: 0.0000\n",
      "Epoch: 6120/20000, Loss: 0.0000\n",
      "Epoch: 6130/20000, Loss: 0.0000\n",
      "Epoch: 6140/20000, Loss: 0.0000\n",
      "Epoch: 6150/20000, Loss: 0.0000\n",
      "Epoch: 6160/20000, Loss: 0.0000\n",
      "Epoch: 6170/20000, Loss: 0.0002\n",
      "Epoch: 6180/20000, Loss: 0.0000\n",
      "Epoch: 6190/20000, Loss: 0.0000\n",
      "Epoch: 6200/20000, Loss: 0.0000\n",
      "Epoch: 6210/20000, Loss: 0.0000\n",
      "Epoch: 6220/20000, Loss: 0.0000\n",
      "Epoch: 6230/20000, Loss: 0.0001\n",
      "Epoch: 6240/20000, Loss: 0.0000\n",
      "Epoch: 6250/20000, Loss: 0.0000\n",
      "Epoch: 6260/20000, Loss: 0.0000\n",
      "Epoch: 6270/20000, Loss: 0.0000\n",
      "Epoch: 6280/20000, Loss: 0.0000\n",
      "Epoch: 6290/20000, Loss: 0.0000\n",
      "Epoch: 6300/20000, Loss: 0.0000\n",
      "Epoch: 6310/20000, Loss: 0.0000\n",
      "Epoch: 6320/20000, Loss: 0.0001\n",
      "Epoch: 6330/20000, Loss: 0.0000\n",
      "Epoch: 6340/20000, Loss: 0.0000\n",
      "Epoch: 6350/20000, Loss: 0.0000\n",
      "Epoch: 6360/20000, Loss: 0.0000\n",
      "Epoch: 6370/20000, Loss: 0.0000\n",
      "Epoch: 6380/20000, Loss: 0.0001\n",
      "Epoch: 6390/20000, Loss: 0.0000\n",
      "Epoch: 6400/20000, Loss: 0.0001\n",
      "Epoch: 6410/20000, Loss: 0.0000\n",
      "Epoch: 6420/20000, Loss: 0.0000\n",
      "Epoch: 6430/20000, Loss: 0.0000\n",
      "Epoch: 6440/20000, Loss: 0.0001\n",
      "Epoch: 6450/20000, Loss: 0.0000\n",
      "Epoch: 6460/20000, Loss: 0.0000\n",
      "Epoch: 6470/20000, Loss: 0.0000\n",
      "Epoch: 6480/20000, Loss: 0.0000\n",
      "Epoch: 6490/20000, Loss: 0.0000\n",
      "Epoch: 6500/20000, Loss: 0.0000\n",
      "Epoch: 6510/20000, Loss: 0.0000\n",
      "Epoch: 6520/20000, Loss: 0.0000\n",
      "Epoch: 6530/20000, Loss: 0.0001\n",
      "Epoch: 6540/20000, Loss: 0.0000\n",
      "Epoch: 6550/20000, Loss: 0.0001\n",
      "Epoch: 6560/20000, Loss: 0.0000\n",
      "Epoch: 6570/20000, Loss: 0.0001\n",
      "Epoch: 6580/20000, Loss: 0.0000\n",
      "Epoch: 6590/20000, Loss: 0.0000\n",
      "Epoch: 6600/20000, Loss: 0.0001\n",
      "Epoch: 6610/20000, Loss: 0.0000\n",
      "Epoch: 6620/20000, Loss: 0.0001\n",
      "Epoch: 6630/20000, Loss: 0.0000\n",
      "Epoch: 6640/20000, Loss: 0.0000\n",
      "Epoch: 6650/20000, Loss: 0.0000\n",
      "Epoch: 6660/20000, Loss: 0.0000\n",
      "Epoch: 6670/20000, Loss: 0.0000\n",
      "Epoch: 6680/20000, Loss: 0.0000\n",
      "Epoch: 6690/20000, Loss: 0.0000\n",
      "Epoch: 6700/20000, Loss: 0.0000\n",
      "Epoch: 6710/20000, Loss: 0.0001\n",
      "Epoch: 6720/20000, Loss: 0.0000\n",
      "Epoch: 6730/20000, Loss: 0.0001\n",
      "Epoch: 6740/20000, Loss: 0.0000\n",
      "Epoch: 6750/20000, Loss: 0.0001\n",
      "Epoch: 6760/20000, Loss: 0.0000\n",
      "Epoch: 6770/20000, Loss: 0.0001\n",
      "Epoch: 6780/20000, Loss: 0.0001\n",
      "Epoch: 6790/20000, Loss: 0.0000\n",
      "Epoch: 6800/20000, Loss: 0.0001\n",
      "Epoch: 6810/20000, Loss: 0.0000\n",
      "Epoch: 6820/20000, Loss: 0.0001\n",
      "Epoch: 6830/20000, Loss: 0.0000\n",
      "Epoch: 6840/20000, Loss: 0.0001\n",
      "Epoch: 6850/20000, Loss: 0.0000\n",
      "Epoch: 6860/20000, Loss: 0.0000\n",
      "Epoch: 6870/20000, Loss: 0.0000\n",
      "Epoch: 6880/20000, Loss: 0.0001\n",
      "Epoch: 6890/20000, Loss: 0.0001\n",
      "Epoch: 6900/20000, Loss: 0.0000\n",
      "Epoch: 6910/20000, Loss: 0.0001\n",
      "Epoch: 6920/20000, Loss: 0.0000\n",
      "Epoch: 6930/20000, Loss: 0.0001\n",
      "Epoch: 6940/20000, Loss: 0.0000\n",
      "Epoch: 6950/20000, Loss: 0.0001\n",
      "Epoch: 6960/20000, Loss: 0.0001\n",
      "Epoch: 6970/20000, Loss: 0.0000\n",
      "Epoch: 6980/20000, Loss: 0.0001\n",
      "Epoch: 6990/20000, Loss: 0.0000\n",
      "Epoch: 7000/20000, Loss: 0.0001\n",
      "Epoch: 7010/20000, Loss: 0.0000\n",
      "Epoch: 7020/20000, Loss: 0.0001\n",
      "Epoch: 7030/20000, Loss: 0.0000\n",
      "Epoch: 7040/20000, Loss: 0.0001\n",
      "Epoch: 7050/20000, Loss: 0.0000\n",
      "Epoch: 7060/20000, Loss: 0.0001\n",
      "Epoch: 7070/20000, Loss: 0.0000\n",
      "Epoch: 7080/20000, Loss: 0.0001\n",
      "Epoch: 7090/20000, Loss: 0.0000\n",
      "Epoch: 7100/20000, Loss: 0.0001\n",
      "Epoch: 7110/20000, Loss: 0.0001\n",
      "Epoch: 7120/20000, Loss: 0.0001\n",
      "Epoch: 7130/20000, Loss: 0.0000\n",
      "Epoch: 7140/20000, Loss: 0.0000\n",
      "Epoch: 7150/20000, Loss: 0.0002\n",
      "Epoch: 7160/20000, Loss: 0.0001\n",
      "Epoch: 7170/20000, Loss: 0.0000\n",
      "Epoch: 7180/20000, Loss: 0.0001\n",
      "Epoch: 7190/20000, Loss: 0.0000\n",
      "Epoch: 7200/20000, Loss: 0.0000\n",
      "Epoch: 7210/20000, Loss: 0.0003\n",
      "Epoch: 7220/20000, Loss: 0.0001\n",
      "Epoch: 7230/20000, Loss: 0.0001\n",
      "Epoch: 7240/20000, Loss: 0.0000\n",
      "Epoch: 7250/20000, Loss: 0.0000\n",
      "Epoch: 7260/20000, Loss: 0.0001\n",
      "Epoch: 7270/20000, Loss: 0.0000\n",
      "Epoch: 7280/20000, Loss: 0.0001\n",
      "Epoch: 7290/20000, Loss: 0.0001\n",
      "Epoch: 7300/20000, Loss: 0.0001\n",
      "Epoch: 7310/20000, Loss: 0.0000\n",
      "Epoch: 7320/20000, Loss: 0.0001\n",
      "Epoch: 7330/20000, Loss: 0.0000\n",
      "Epoch: 7340/20000, Loss: 0.0000\n",
      "Epoch: 7350/20000, Loss: 0.0001\n",
      "Epoch: 7360/20000, Loss: 0.0001\n",
      "Epoch: 7370/20000, Loss: 0.0001\n",
      "Epoch: 7380/20000, Loss: 0.0001\n",
      "Epoch: 7390/20000, Loss: 0.0000\n",
      "Epoch: 7400/20000, Loss: 0.0000\n",
      "Epoch: 7410/20000, Loss: 0.0000\n",
      "Epoch: 7420/20000, Loss: 0.0001\n",
      "Epoch: 7430/20000, Loss: 0.0001\n",
      "Epoch: 7440/20000, Loss: 0.0001\n",
      "Epoch: 7450/20000, Loss: 0.0000\n",
      "Epoch: 7460/20000, Loss: 0.0001\n",
      "Epoch: 7470/20000, Loss: 0.0001\n",
      "Epoch: 7480/20000, Loss: 0.0000\n",
      "Epoch: 7490/20000, Loss: 0.0000\n",
      "Epoch: 7500/20000, Loss: 0.0000\n",
      "Epoch: 7510/20000, Loss: 0.0000\n",
      "Epoch: 7520/20000, Loss: 0.0007\n",
      "Epoch: 7530/20000, Loss: 0.0001\n",
      "Epoch: 7540/20000, Loss: 0.0001\n",
      "Epoch: 7550/20000, Loss: 0.0000\n",
      "Epoch: 7560/20000, Loss: 0.0000\n",
      "Epoch: 7570/20000, Loss: 0.0000\n",
      "Epoch: 7580/20000, Loss: 0.0000\n",
      "Epoch: 7590/20000, Loss: 0.0000\n",
      "Epoch: 7600/20000, Loss: 0.0000\n",
      "Epoch: 7610/20000, Loss: 0.0000\n",
      "Epoch: 7620/20000, Loss: 0.0002\n",
      "Epoch: 7630/20000, Loss: 0.0001\n",
      "Epoch: 7640/20000, Loss: 0.0001\n",
      "Epoch: 7650/20000, Loss: 0.0000\n",
      "Epoch: 7660/20000, Loss: 0.0000\n",
      "Epoch: 7670/20000, Loss: 0.0000\n",
      "Epoch: 7680/20000, Loss: 0.0000\n",
      "Epoch: 7690/20000, Loss: 0.0001\n",
      "Epoch: 7700/20000, Loss: 0.0001\n",
      "Epoch: 7710/20000, Loss: 0.0001\n",
      "Epoch: 7720/20000, Loss: 0.0001\n",
      "Epoch: 7730/20000, Loss: 0.0000\n",
      "Epoch: 7740/20000, Loss: 0.0000\n",
      "Epoch: 7750/20000, Loss: 0.0002\n",
      "Epoch: 7760/20000, Loss: 0.0000\n",
      "Epoch: 7770/20000, Loss: 0.0001\n",
      "Epoch: 7780/20000, Loss: 0.0000\n",
      "Epoch: 7790/20000, Loss: 0.0000\n",
      "Epoch: 7800/20000, Loss: 0.0001\n",
      "Epoch: 7810/20000, Loss: 0.0002\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 7820/20000, Loss: 0.0000\n",
      "Epoch: 7830/20000, Loss: 0.0000\n",
      "Epoch: 7840/20000, Loss: 0.0000\n",
      "Epoch: 7850/20000, Loss: 0.0000\n",
      "Epoch: 7860/20000, Loss: 0.0000\n",
      "Epoch: 7870/20000, Loss: 0.0000\n",
      "Epoch: 7880/20000, Loss: 0.0001\n",
      "Epoch: 7890/20000, Loss: 0.0001\n",
      "Epoch: 7900/20000, Loss: 0.0000\n",
      "Epoch: 7910/20000, Loss: 0.0000\n",
      "Epoch: 7920/20000, Loss: 0.0000\n",
      "Epoch: 7930/20000, Loss: 0.0000\n",
      "Epoch: 7940/20000, Loss: 0.0005\n",
      "Epoch: 7950/20000, Loss: 0.0002\n",
      "Epoch: 7960/20000, Loss: 0.0001\n",
      "Epoch: 7970/20000, Loss: 0.0000\n",
      "Epoch: 7980/20000, Loss: 0.0000\n",
      "Epoch: 7990/20000, Loss: 0.0000\n",
      "Epoch: 8000/20000, Loss: 0.0000\n",
      "Epoch: 8010/20000, Loss: 0.0001\n",
      "Epoch: 8020/20000, Loss: 0.0001\n",
      "Epoch: 8030/20000, Loss: 0.0001\n",
      "Epoch: 8040/20000, Loss: 0.0000\n",
      "Epoch: 8050/20000, Loss: 0.0000\n",
      "Epoch: 8060/20000, Loss: 0.0001\n",
      "Epoch: 8070/20000, Loss: 0.0001\n",
      "Epoch: 8080/20000, Loss: 0.0000\n",
      "Epoch: 8090/20000, Loss: 0.0000\n",
      "Epoch: 8100/20000, Loss: 0.0001\n",
      "Epoch: 8110/20000, Loss: 0.0001\n",
      "Epoch: 8120/20000, Loss: 0.0000\n",
      "Epoch: 8130/20000, Loss: 0.0001\n",
      "Epoch: 8140/20000, Loss: 0.0002\n",
      "Epoch: 8150/20000, Loss: 0.0000\n",
      "Epoch: 8160/20000, Loss: 0.0001\n",
      "Epoch: 8170/20000, Loss: 0.0001\n",
      "Epoch: 8180/20000, Loss: 0.0001\n",
      "Epoch: 8190/20000, Loss: 0.0000\n",
      "Epoch: 8200/20000, Loss: 0.0000\n",
      "Epoch: 8210/20000, Loss: 0.0001\n",
      "Epoch: 8220/20000, Loss: 0.0003\n",
      "Epoch: 8230/20000, Loss: 0.0001\n",
      "Epoch: 8240/20000, Loss: 0.0000\n",
      "Epoch: 8250/20000, Loss: 0.0000\n",
      "Epoch: 8260/20000, Loss: 0.0000\n",
      "Epoch: 8270/20000, Loss: 0.0000\n",
      "Epoch: 8280/20000, Loss: 0.0001\n",
      "Epoch: 8290/20000, Loss: 0.0000\n",
      "Epoch: 8300/20000, Loss: 0.0000\n",
      "Epoch: 8310/20000, Loss: 0.0000\n",
      "Epoch: 8320/20000, Loss: 0.0004\n",
      "Epoch: 8330/20000, Loss: 0.0001\n",
      "Epoch: 8340/20000, Loss: 0.0001\n",
      "Epoch: 8350/20000, Loss: 0.0000\n",
      "Epoch: 8360/20000, Loss: 0.0000\n",
      "Epoch: 8370/20000, Loss: 0.0000\n",
      "Epoch: 8380/20000, Loss: 0.0000\n",
      "Epoch: 8390/20000, Loss: 0.0001\n",
      "Epoch: 8400/20000, Loss: 0.0001\n",
      "Epoch: 8410/20000, Loss: 0.0000\n",
      "Epoch: 8420/20000, Loss: 0.0000\n",
      "Epoch: 8430/20000, Loss: 0.0002\n",
      "Epoch: 8440/20000, Loss: 0.0001\n",
      "Epoch: 8450/20000, Loss: 0.0001\n",
      "Epoch: 8460/20000, Loss: 0.0000\n",
      "Epoch: 8470/20000, Loss: 0.0000\n",
      "Epoch: 8480/20000, Loss: 0.0000\n",
      "Epoch: 8490/20000, Loss: 0.0000\n",
      "Epoch: 8500/20000, Loss: 0.0001\n",
      "Epoch: 8510/20000, Loss: 0.0002\n",
      "Epoch: 8520/20000, Loss: 0.0000\n",
      "Epoch: 8530/20000, Loss: 0.0000\n",
      "Epoch: 8540/20000, Loss: 0.0000\n",
      "Epoch: 8550/20000, Loss: 0.0001\n",
      "Epoch: 8560/20000, Loss: 0.0003\n",
      "Epoch: 8570/20000, Loss: 0.0001\n",
      "Epoch: 8580/20000, Loss: 0.0000\n",
      "Epoch: 8590/20000, Loss: 0.0000\n",
      "Epoch: 8600/20000, Loss: 0.0000\n",
      "Epoch: 8610/20000, Loss: 0.0000\n",
      "Epoch: 8620/20000, Loss: 0.0002\n",
      "Epoch: 8630/20000, Loss: 0.0000\n",
      "Epoch: 8640/20000, Loss: 0.0001\n",
      "Epoch: 8650/20000, Loss: 0.0000\n",
      "Epoch: 8660/20000, Loss: 0.0000\n",
      "Epoch: 8670/20000, Loss: 0.0000\n",
      "Epoch: 8680/20000, Loss: 0.0001\n",
      "Epoch: 8690/20000, Loss: 0.0003\n",
      "Epoch: 8700/20000, Loss: 0.0000\n",
      "Epoch: 8710/20000, Loss: 0.0000\n",
      "Epoch: 8720/20000, Loss: 0.0000\n",
      "Epoch: 8730/20000, Loss: 0.0001\n",
      "Epoch: 8740/20000, Loss: 0.0001\n",
      "Epoch: 8750/20000, Loss: 0.0000\n",
      "Epoch: 8760/20000, Loss: 0.0000\n",
      "Epoch: 8770/20000, Loss: 0.0001\n",
      "Epoch: 8780/20000, Loss: 0.0002\n",
      "Epoch: 8790/20000, Loss: 0.0001\n",
      "Epoch: 8800/20000, Loss: 0.0000\n",
      "Epoch: 8810/20000, Loss: 0.0000\n",
      "Epoch: 8820/20000, Loss: 0.0000\n",
      "Epoch: 8830/20000, Loss: 0.0000\n",
      "Epoch: 8840/20000, Loss: 0.0002\n",
      "Epoch: 8850/20000, Loss: 0.0001\n",
      "Epoch: 8860/20000, Loss: 0.0001\n",
      "Epoch: 8870/20000, Loss: 0.0000\n",
      "Epoch: 8880/20000, Loss: 0.0000\n",
      "Epoch: 8890/20000, Loss: 0.0000\n",
      "Epoch: 8900/20000, Loss: 0.0000\n",
      "Epoch: 8910/20000, Loss: 0.0004\n",
      "Epoch: 8920/20000, Loss: 0.0000\n",
      "Epoch: 8930/20000, Loss: 0.0000\n",
      "Epoch: 8940/20000, Loss: 0.0000\n",
      "Epoch: 8950/20000, Loss: 0.0000\n",
      "Epoch: 8960/20000, Loss: 0.0000\n",
      "Epoch: 8970/20000, Loss: 0.0001\n",
      "Epoch: 8980/20000, Loss: 0.0001\n",
      "Epoch: 8990/20000, Loss: 0.0000\n",
      "Epoch: 9000/20000, Loss: 0.0000\n",
      "Epoch: 9010/20000, Loss: 0.0000\n",
      "Epoch: 9020/20000, Loss: 0.0000\n",
      "Epoch: 9030/20000, Loss: 0.0000\n",
      "Epoch: 9040/20000, Loss: 0.0004\n",
      "Epoch: 9050/20000, Loss: 0.0042\n",
      "Epoch: 9060/20000, Loss: 0.0099\n",
      "Epoch: 9070/20000, Loss: 0.0035\n",
      "Epoch: 9080/20000, Loss: 0.0016\n",
      "Epoch: 9090/20000, Loss: 0.0008\n",
      "Epoch: 9100/20000, Loss: 0.0006\n",
      "Epoch: 9110/20000, Loss: 0.0004\n",
      "Epoch: 9120/20000, Loss: 0.0003\n",
      "Epoch: 9130/20000, Loss: 0.0003\n",
      "Epoch: 9140/20000, Loss: 0.0003\n",
      "Epoch: 9150/20000, Loss: 0.0003\n",
      "Epoch: 9160/20000, Loss: 0.0003\n",
      "Epoch: 9170/20000, Loss: 0.0002\n",
      "Epoch: 9180/20000, Loss: 0.0002\n",
      "Epoch: 9190/20000, Loss: 0.0002\n",
      "Epoch: 9200/20000, Loss: 0.0002\n",
      "Epoch: 9210/20000, Loss: 0.0002\n",
      "Epoch: 9220/20000, Loss: 0.0002\n",
      "Epoch: 9230/20000, Loss: 0.0003\n",
      "Epoch: 9240/20000, Loss: 0.0002\n",
      "Epoch: 9250/20000, Loss: 0.0002\n",
      "Epoch: 9260/20000, Loss: 0.0001\n",
      "Epoch: 9270/20000, Loss: 0.0001\n",
      "Epoch: 9280/20000, Loss: 0.0002\n",
      "Epoch: 9290/20000, Loss: 0.0001\n",
      "Epoch: 9300/20000, Loss: 0.0001\n",
      "Epoch: 9310/20000, Loss: 0.0001\n",
      "Epoch: 9320/20000, Loss: 0.0001\n",
      "Epoch: 9330/20000, Loss: 0.0001\n",
      "Epoch: 9340/20000, Loss: 0.0002\n",
      "Epoch: 9350/20000, Loss: 0.0001\n",
      "Epoch: 9360/20000, Loss: 0.0001\n",
      "Epoch: 9370/20000, Loss: 0.0001\n",
      "Epoch: 9380/20000, Loss: 0.0001\n",
      "Epoch: 9390/20000, Loss: 0.0002\n",
      "Epoch: 9400/20000, Loss: 0.0001\n",
      "Epoch: 9410/20000, Loss: 0.0001\n",
      "Epoch: 9420/20000, Loss: 0.0001\n",
      "Epoch: 9430/20000, Loss: 0.0001\n",
      "Epoch: 9440/20000, Loss: 0.0002\n",
      "Epoch: 9450/20000, Loss: 0.0001\n",
      "Epoch: 9460/20000, Loss: 0.0001\n",
      "Epoch: 9470/20000, Loss: 0.0001\n",
      "Epoch: 9480/20000, Loss: 0.0001\n",
      "Epoch: 9490/20000, Loss: 0.0001\n",
      "Epoch: 9500/20000, Loss: 0.0001\n",
      "Epoch: 9510/20000, Loss: 0.0001\n",
      "Epoch: 9520/20000, Loss: 0.0001\n",
      "Epoch: 9530/20000, Loss: 0.0001\n",
      "Epoch: 9540/20000, Loss: 0.0001\n",
      "Epoch: 9550/20000, Loss: 0.0001\n",
      "Epoch: 9560/20000, Loss: 0.0001\n",
      "Epoch: 9570/20000, Loss: 0.0001\n",
      "Epoch: 9580/20000, Loss: 0.0001\n",
      "Epoch: 9590/20000, Loss: 0.0001\n",
      "Epoch: 9600/20000, Loss: 0.0001\n",
      "Epoch: 9610/20000, Loss: 0.0001\n",
      "Epoch: 9620/20000, Loss: 0.0001\n",
      "Epoch: 9630/20000, Loss: 0.0001\n",
      "Epoch: 9640/20000, Loss: 0.0002\n",
      "Epoch: 9650/20000, Loss: 0.0001\n",
      "Epoch: 9660/20000, Loss: 0.0001\n",
      "Epoch: 9670/20000, Loss: 0.0001\n",
      "Epoch: 9680/20000, Loss: 0.0001\n",
      "Epoch: 9690/20000, Loss: 0.0001\n",
      "Epoch: 9700/20000, Loss: 0.0001\n",
      "Epoch: 9710/20000, Loss: 0.0001\n",
      "Epoch: 9720/20000, Loss: 0.0001\n",
      "Epoch: 9730/20000, Loss: 0.0001\n",
      "Epoch: 9740/20000, Loss: 0.0001\n",
      "Epoch: 9750/20000, Loss: 0.0001\n",
      "Epoch: 9760/20000, Loss: 0.0002\n",
      "Epoch: 9770/20000, Loss: 0.0001\n",
      "Epoch: 9780/20000, Loss: 0.0001\n",
      "Epoch: 9790/20000, Loss: 0.0001\n",
      "Epoch: 9800/20000, Loss: 0.0002\n",
      "Epoch: 9810/20000, Loss: 0.0001\n",
      "Epoch: 9820/20000, Loss: 0.0001\n",
      "Epoch: 9830/20000, Loss: 0.0001\n",
      "Epoch: 9840/20000, Loss: 0.0001\n",
      "Epoch: 9850/20000, Loss: 0.0001\n",
      "Epoch: 9860/20000, Loss: 0.0002\n",
      "Epoch: 9870/20000, Loss: 0.0002\n",
      "Epoch: 9880/20000, Loss: 0.0001\n",
      "Epoch: 9890/20000, Loss: 0.0001\n",
      "Epoch: 9900/20000, Loss: 0.0002\n",
      "Epoch: 9910/20000, Loss: 0.0001\n",
      "Epoch: 9920/20000, Loss: 0.0002\n",
      "Epoch: 9930/20000, Loss: 0.0001\n",
      "Epoch: 9940/20000, Loss: 0.0001\n",
      "Epoch: 9950/20000, Loss: 0.0001\n",
      "Epoch: 9960/20000, Loss: 0.0001\n",
      "Epoch: 9970/20000, Loss: 0.0001\n",
      "Epoch: 9980/20000, Loss: 0.0001\n",
      "Epoch: 9990/20000, Loss: 0.0001\n",
      "Epoch: 10000/20000, Loss: 0.0001\n",
      "Epoch: 10010/20000, Loss: 0.0002\n",
      "Epoch: 10020/20000, Loss: 0.0002\n",
      "Epoch: 10030/20000, Loss: 0.0001\n",
      "Epoch: 10040/20000, Loss: 0.0001\n",
      "Epoch: 10050/20000, Loss: 0.0001\n",
      "Epoch: 10060/20000, Loss: 0.0001\n",
      "Epoch: 10070/20000, Loss: 0.0001\n",
      "Epoch: 10080/20000, Loss: 0.0003\n",
      "Epoch: 10090/20000, Loss: 0.0001\n",
      "Epoch: 10100/20000, Loss: 0.0001\n",
      "Epoch: 10110/20000, Loss: 0.0001\n",
      "Epoch: 10120/20000, Loss: 0.0001\n",
      "Epoch: 10130/20000, Loss: 0.0001\n",
      "Epoch: 10140/20000, Loss: 0.0003\n",
      "Epoch: 10150/20000, Loss: 0.0001\n",
      "Epoch: 10160/20000, Loss: 0.0001\n",
      "Epoch: 10170/20000, Loss: 0.0001\n",
      "Epoch: 10180/20000, Loss: 0.0001\n",
      "Epoch: 10190/20000, Loss: 0.0001\n",
      "Epoch: 10200/20000, Loss: 0.0004\n",
      "Epoch: 10210/20000, Loss: 0.0002\n",
      "Epoch: 10220/20000, Loss: 0.0001\n",
      "Epoch: 10230/20000, Loss: 0.0001\n",
      "Epoch: 10240/20000, Loss: 0.0001\n",
      "Epoch: 10250/20000, Loss: 0.0003\n",
      "Epoch: 10260/20000, Loss: 0.0002\n",
      "Epoch: 10270/20000, Loss: 0.0001\n",
      "Epoch: 10280/20000, Loss: 0.0002\n",
      "Epoch: 10290/20000, Loss: 0.0001\n",
      "Epoch: 10300/20000, Loss: 0.0001\n",
      "Epoch: 10310/20000, Loss: 0.0002\n",
      "Epoch: 10320/20000, Loss: 0.0001\n",
      "Epoch: 10330/20000, Loss: 0.0001\n",
      "Epoch: 10340/20000, Loss: 0.0002\n",
      "Epoch: 10350/20000, Loss: 0.0001\n",
      "Epoch: 10360/20000, Loss: 0.0003\n",
      "Epoch: 10370/20000, Loss: 0.0002\n",
      "Epoch: 10380/20000, Loss: 0.0002\n",
      "Epoch: 10390/20000, Loss: 0.0001\n",
      "Epoch: 10400/20000, Loss: 0.0001\n",
      "Epoch: 10410/20000, Loss: 0.0001\n",
      "Epoch: 10420/20000, Loss: 0.0001\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10430/20000, Loss: 0.0004\n",
      "Epoch: 10440/20000, Loss: 0.0001\n",
      "Epoch: 10450/20000, Loss: 0.0002\n",
      "Epoch: 10460/20000, Loss: 0.0001\n",
      "Epoch: 10470/20000, Loss: 0.0001\n",
      "Epoch: 10480/20000, Loss: 0.0001\n",
      "Epoch: 10490/20000, Loss: 0.0004\n",
      "Epoch: 10500/20000, Loss: 0.0001\n",
      "Epoch: 10510/20000, Loss: 0.0002\n",
      "Epoch: 10520/20000, Loss: 0.0001\n",
      "Epoch: 10530/20000, Loss: 0.0001\n",
      "Epoch: 10540/20000, Loss: 0.0001\n",
      "Epoch: 10550/20000, Loss: 0.0002\n",
      "Epoch: 10560/20000, Loss: 0.0004\n",
      "Epoch: 10570/20000, Loss: 0.0002\n",
      "Epoch: 10580/20000, Loss: 0.0002\n",
      "Epoch: 10590/20000, Loss: 0.0001\n",
      "Epoch: 10600/20000, Loss: 0.0001\n",
      "Epoch: 10610/20000, Loss: 0.0001\n",
      "Epoch: 10620/20000, Loss: 0.0001\n",
      "Epoch: 10630/20000, Loss: 0.0002\n",
      "Epoch: 10640/20000, Loss: 0.0001\n",
      "Epoch: 10650/20000, Loss: 0.0001\n",
      "Epoch: 10660/20000, Loss: 0.0001\n",
      "Epoch: 10670/20000, Loss: 0.0001\n",
      "Epoch: 10680/20000, Loss: 0.0001\n",
      "Epoch: 10690/20000, Loss: 0.0001\n",
      "Epoch: 10700/20000, Loss: 0.0001\n",
      "Epoch: 10710/20000, Loss: 0.0005\n",
      "Epoch: 10720/20000, Loss: 0.0003\n",
      "Epoch: 10730/20000, Loss: 0.0002\n",
      "Epoch: 10740/20000, Loss: 0.0001\n",
      "Epoch: 10750/20000, Loss: 0.0001\n",
      "Epoch: 10760/20000, Loss: 0.0001\n",
      "Epoch: 10770/20000, Loss: 0.0003\n",
      "Epoch: 10780/20000, Loss: 0.0001\n",
      "Epoch: 10790/20000, Loss: 0.0001\n",
      "Epoch: 10800/20000, Loss: 0.0001\n",
      "Epoch: 10810/20000, Loss: 0.0002\n",
      "Epoch: 10820/20000, Loss: 0.0001\n",
      "Epoch: 10830/20000, Loss: 0.0001\n",
      "Epoch: 10840/20000, Loss: 0.0001\n",
      "Epoch: 10850/20000, Loss: 0.0001\n",
      "Epoch: 10860/20000, Loss: 0.0002\n",
      "Epoch: 10870/20000, Loss: 0.0001\n",
      "Epoch: 10880/20000, Loss: 0.0002\n",
      "Epoch: 10890/20000, Loss: 0.0001\n",
      "Epoch: 10900/20000, Loss: 0.0002\n",
      "Epoch: 10910/20000, Loss: 0.0001\n",
      "Epoch: 10920/20000, Loss: 0.0017\n",
      "Epoch: 10930/20000, Loss: 0.0006\n",
      "Epoch: 10940/20000, Loss: 0.0004\n",
      "Epoch: 10950/20000, Loss: 0.0002\n",
      "Epoch: 10960/20000, Loss: 0.0001\n",
      "Epoch: 10970/20000, Loss: 0.0001\n",
      "Epoch: 10980/20000, Loss: 0.0001\n",
      "Epoch: 10990/20000, Loss: 0.0002\n",
      "Epoch: 11000/20000, Loss: 0.0001\n",
      "Epoch: 11010/20000, Loss: 0.0001\n",
      "Epoch: 11020/20000, Loss: 0.0001\n",
      "Epoch: 11030/20000, Loss: 0.0001\n",
      "Epoch: 11040/20000, Loss: 0.0001\n",
      "Epoch: 11050/20000, Loss: 0.0001\n",
      "Epoch: 11060/20000, Loss: 0.0001\n",
      "Epoch: 11070/20000, Loss: 0.0001\n",
      "Epoch: 11080/20000, Loss: 0.0001\n",
      "Epoch: 11090/20000, Loss: 0.0001\n",
      "Epoch: 11100/20000, Loss: 0.0001\n",
      "Epoch: 11110/20000, Loss: 0.0001\n",
      "Epoch: 11120/20000, Loss: 0.0001\n",
      "Epoch: 11130/20000, Loss: 0.0001\n",
      "Epoch: 11140/20000, Loss: 0.0001\n",
      "Epoch: 11150/20000, Loss: 0.0001\n",
      "Epoch: 11160/20000, Loss: 0.0001\n",
      "Epoch: 11170/20000, Loss: 0.0001\n",
      "Epoch: 11180/20000, Loss: 0.0001\n",
      "Epoch: 11190/20000, Loss: 0.0001\n",
      "Epoch: 11200/20000, Loss: 0.0003\n",
      "Epoch: 11210/20000, Loss: 0.0001\n",
      "Epoch: 11220/20000, Loss: 0.0002\n",
      "Epoch: 11230/20000, Loss: 0.0001\n",
      "Epoch: 11240/20000, Loss: 0.0002\n",
      "Epoch: 11250/20000, Loss: 0.0001\n",
      "Epoch: 11260/20000, Loss: 0.0001\n",
      "Epoch: 11270/20000, Loss: 0.0002\n",
      "Epoch: 11280/20000, Loss: 0.0001\n",
      "Epoch: 11290/20000, Loss: 0.0002\n",
      "Epoch: 11300/20000, Loss: 0.0001\n",
      "Epoch: 11310/20000, Loss: 0.0001\n",
      "Epoch: 11320/20000, Loss: 0.0002\n",
      "Epoch: 11330/20000, Loss: 0.0001\n",
      "Epoch: 11340/20000, Loss: 0.0001\n",
      "Epoch: 11350/20000, Loss: 0.0001\n",
      "Epoch: 11360/20000, Loss: 0.0004\n",
      "Epoch: 11370/20000, Loss: 0.0002\n",
      "Epoch: 11380/20000, Loss: 0.0001\n",
      "Epoch: 11390/20000, Loss: 0.0001\n",
      "Epoch: 11400/20000, Loss: 0.0001\n",
      "Epoch: 11410/20000, Loss: 0.0001\n",
      "Epoch: 11420/20000, Loss: 0.0002\n",
      "Epoch: 11430/20000, Loss: 0.0001\n",
      "Epoch: 11440/20000, Loss: 0.0002\n",
      "Epoch: 11450/20000, Loss: 0.0001\n",
      "Epoch: 11460/20000, Loss: 0.0002\n",
      "Epoch: 11470/20000, Loss: 0.0002\n",
      "Epoch: 11480/20000, Loss: 0.0001\n",
      "Epoch: 11490/20000, Loss: 0.0010\n",
      "Epoch: 11500/20000, Loss: 0.0002\n",
      "Epoch: 11510/20000, Loss: 0.0002\n",
      "Epoch: 11520/20000, Loss: 0.0001\n",
      "Epoch: 11530/20000, Loss: 0.0001\n",
      "Epoch: 11540/20000, Loss: 0.0001\n",
      "Epoch: 11550/20000, Loss: 0.0001\n",
      "Epoch: 11560/20000, Loss: 0.0001\n",
      "Epoch: 11570/20000, Loss: 0.0001\n",
      "Epoch: 11580/20000, Loss: 0.0001\n",
      "Epoch: 11590/20000, Loss: 0.0001\n",
      "Epoch: 11600/20000, Loss: 0.0007\n",
      "Epoch: 11610/20000, Loss: 0.0002\n",
      "Epoch: 11620/20000, Loss: 0.0001\n",
      "Epoch: 11630/20000, Loss: 0.0001\n",
      "Epoch: 11640/20000, Loss: 0.0001\n",
      "Epoch: 11650/20000, Loss: 0.0001\n",
      "Epoch: 11660/20000, Loss: 0.0002\n",
      "Epoch: 11670/20000, Loss: 0.0001\n",
      "Epoch: 11680/20000, Loss: 0.0001\n",
      "Epoch: 11690/20000, Loss: 0.0001\n",
      "Epoch: 11700/20000, Loss: 0.0003\n",
      "Epoch: 11710/20000, Loss: 0.0002\n",
      "Epoch: 11720/20000, Loss: 0.0001\n",
      "Epoch: 11730/20000, Loss: 0.0001\n",
      "Epoch: 11740/20000, Loss: 0.0001\n",
      "Epoch: 11750/20000, Loss: 0.0001\n",
      "Epoch: 11760/20000, Loss: 0.0001\n",
      "Epoch: 11770/20000, Loss: 0.0000\n",
      "Epoch: 11780/20000, Loss: 0.0001\n",
      "Epoch: 11790/20000, Loss: 0.0001\n",
      "Epoch: 11800/20000, Loss: 0.0001\n",
      "Epoch: 11810/20000, Loss: 0.0001\n",
      "Epoch: 11820/20000, Loss: 0.0000\n",
      "Epoch: 11830/20000, Loss: 0.0001\n",
      "Epoch: 11840/20000, Loss: 0.0001\n",
      "Epoch: 11850/20000, Loss: 0.0000\n",
      "Epoch: 11860/20000, Loss: 0.0005\n",
      "Epoch: 11870/20000, Loss: 0.0002\n",
      "Epoch: 11880/20000, Loss: 0.0001\n",
      "Epoch: 11890/20000, Loss: 0.0002\n",
      "Epoch: 11900/20000, Loss: 0.0002\n",
      "Epoch: 11910/20000, Loss: 0.0001\n",
      "Epoch: 11920/20000, Loss: 0.0000\n",
      "Epoch: 11930/20000, Loss: 0.0000\n",
      "Epoch: 11940/20000, Loss: 0.0000\n",
      "Epoch: 11950/20000, Loss: 0.0000\n",
      "Epoch: 11960/20000, Loss: 0.0004\n",
      "Epoch: 11970/20000, Loss: 0.0005\n",
      "Epoch: 11980/20000, Loss: 0.0001\n",
      "Epoch: 11990/20000, Loss: 0.0001\n",
      "Epoch: 12000/20000, Loss: 0.0001\n",
      "Epoch: 12010/20000, Loss: 0.0000\n",
      "Epoch: 12020/20000, Loss: 0.0000\n",
      "Epoch: 12030/20000, Loss: 0.0000\n",
      "Epoch: 12040/20000, Loss: 0.0000\n",
      "Epoch: 12050/20000, Loss: 0.0006\n",
      "Epoch: 12060/20000, Loss: 0.0003\n",
      "Epoch: 12070/20000, Loss: 0.0001\n",
      "Epoch: 12080/20000, Loss: 0.0001\n",
      "Epoch: 12090/20000, Loss: 0.0001\n",
      "Epoch: 12100/20000, Loss: 0.0000\n",
      "Epoch: 12110/20000, Loss: 0.0001\n",
      "Epoch: 12120/20000, Loss: 0.0001\n",
      "Epoch: 12130/20000, Loss: 0.0000\n",
      "Epoch: 12140/20000, Loss: 0.0001\n",
      "Epoch: 12150/20000, Loss: 0.0001\n",
      "Epoch: 12160/20000, Loss: 0.0001\n",
      "Epoch: 12170/20000, Loss: 0.0001\n",
      "Epoch: 12180/20000, Loss: 0.0000\n",
      "Epoch: 12190/20000, Loss: 0.0002\n",
      "Epoch: 12200/20000, Loss: 0.0000\n",
      "Epoch: 12210/20000, Loss: 0.0000\n",
      "Epoch: 12220/20000, Loss: 0.0001\n",
      "Epoch: 12230/20000, Loss: 0.0001\n",
      "Epoch: 12240/20000, Loss: 0.0002\n",
      "Epoch: 12250/20000, Loss: 0.0000\n",
      "Epoch: 12260/20000, Loss: 0.0001\n",
      "Epoch: 12270/20000, Loss: 0.0001\n",
      "Epoch: 12280/20000, Loss: 0.0003\n",
      "Epoch: 12290/20000, Loss: 0.0002\n",
      "Epoch: 12300/20000, Loss: 0.0001\n",
      "Epoch: 12310/20000, Loss: 0.0001\n",
      "Epoch: 12320/20000, Loss: 0.0000\n",
      "Epoch: 12330/20000, Loss: 0.0001\n",
      "Epoch: 12340/20000, Loss: 0.0003\n",
      "Epoch: 12350/20000, Loss: 0.0001\n",
      "Epoch: 12360/20000, Loss: 0.0000\n",
      "Epoch: 12370/20000, Loss: 0.0001\n",
      "Epoch: 12380/20000, Loss: 0.0001\n",
      "Epoch: 12390/20000, Loss: 0.0000\n",
      "Epoch: 12400/20000, Loss: 0.0000\n",
      "Epoch: 12410/20000, Loss: 0.0004\n",
      "Epoch: 12420/20000, Loss: 0.0003\n",
      "Epoch: 12430/20000, Loss: 0.0002\n",
      "Epoch: 12440/20000, Loss: 0.0001\n",
      "Epoch: 12450/20000, Loss: 0.0001\n",
      "Epoch: 12460/20000, Loss: 0.0001\n",
      "Epoch: 12470/20000, Loss: 0.0001\n",
      "Epoch: 12480/20000, Loss: 0.0000\n",
      "Epoch: 12490/20000, Loss: 0.0001\n",
      "Epoch: 12500/20000, Loss: 0.0002\n",
      "Epoch: 12510/20000, Loss: 0.0001\n",
      "Epoch: 12520/20000, Loss: 0.0001\n",
      "Epoch: 12530/20000, Loss: 0.0001\n",
      "Epoch: 12540/20000, Loss: 0.0000\n",
      "Epoch: 12550/20000, Loss: 0.0001\n",
      "Epoch: 12560/20000, Loss: 0.0001\n",
      "Epoch: 12570/20000, Loss: 0.0001\n",
      "Epoch: 12580/20000, Loss: 0.0001\n",
      "Epoch: 12590/20000, Loss: 0.0000\n",
      "Epoch: 12600/20000, Loss: 0.0002\n",
      "Epoch: 12610/20000, Loss: 0.0001\n",
      "Epoch: 12620/20000, Loss: 0.0000\n",
      "Epoch: 12630/20000, Loss: 0.0001\n",
      "Epoch: 12640/20000, Loss: 0.0000\n",
      "Epoch: 12650/20000, Loss: 0.0001\n",
      "Epoch: 12660/20000, Loss: 0.0004\n",
      "Epoch: 12670/20000, Loss: 0.0002\n",
      "Epoch: 12680/20000, Loss: 0.0002\n",
      "Epoch: 12690/20000, Loss: 0.0001\n",
      "Epoch: 12700/20000, Loss: 0.0001\n",
      "Epoch: 12710/20000, Loss: 0.0000\n",
      "Epoch: 12720/20000, Loss: 0.0001\n",
      "Epoch: 12730/20000, Loss: 0.0001\n",
      "Epoch: 12740/20000, Loss: 0.0001\n",
      "Epoch: 12750/20000, Loss: 0.0001\n",
      "Epoch: 12760/20000, Loss: 0.0001\n",
      "Epoch: 12770/20000, Loss: 0.0000\n",
      "Epoch: 12780/20000, Loss: 0.0000\n",
      "Epoch: 12790/20000, Loss: 0.0001\n",
      "Epoch: 12800/20000, Loss: 0.0004\n",
      "Epoch: 12810/20000, Loss: 0.0002\n",
      "Epoch: 12820/20000, Loss: 0.0001\n",
      "Epoch: 12830/20000, Loss: 0.0000\n",
      "Epoch: 12840/20000, Loss: 0.0001\n",
      "Epoch: 12850/20000, Loss: 0.0004\n",
      "Epoch: 12860/20000, Loss: 0.0002\n",
      "Epoch: 12870/20000, Loss: 0.0001\n",
      "Epoch: 12880/20000, Loss: 0.0002\n",
      "Epoch: 12890/20000, Loss: 0.0001\n",
      "Epoch: 12900/20000, Loss: 0.0000\n",
      "Epoch: 12910/20000, Loss: 0.0001\n",
      "Epoch: 12920/20000, Loss: 0.0002\n",
      "Epoch: 12930/20000, Loss: 0.0000\n",
      "Epoch: 12940/20000, Loss: 0.0001\n",
      "Epoch: 12950/20000, Loss: 0.0002\n",
      "Epoch: 12960/20000, Loss: 0.0001\n",
      "Epoch: 12970/20000, Loss: 0.0002\n",
      "Epoch: 12980/20000, Loss: 0.0000\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 12990/20000, Loss: 0.0000\n",
      "Epoch: 13000/20000, Loss: 0.0004\n",
      "Epoch: 13010/20000, Loss: 0.0002\n",
      "Epoch: 13020/20000, Loss: 0.0002\n",
      "Epoch: 13030/20000, Loss: 0.0001\n",
      "Epoch: 13040/20000, Loss: 0.0001\n",
      "Epoch: 13050/20000, Loss: 0.0001\n",
      "Epoch: 13060/20000, Loss: 0.0000\n",
      "Epoch: 13070/20000, Loss: 0.0001\n",
      "Epoch: 13080/20000, Loss: 0.0001\n",
      "Epoch: 13090/20000, Loss: 0.0000\n",
      "Epoch: 13100/20000, Loss: 0.0000\n",
      "Epoch: 13110/20000, Loss: 0.0006\n",
      "Epoch: 13120/20000, Loss: 0.0003\n",
      "Epoch: 13130/20000, Loss: 0.0001\n",
      "Epoch: 13140/20000, Loss: 0.0001\n",
      "Epoch: 13150/20000, Loss: 0.0001\n",
      "Epoch: 13160/20000, Loss: 0.0001\n",
      "Epoch: 13170/20000, Loss: 0.0000\n",
      "Epoch: 13180/20000, Loss: 0.0001\n",
      "Epoch: 13190/20000, Loss: 0.0001\n",
      "Epoch: 13200/20000, Loss: 0.0000\n",
      "Epoch: 13210/20000, Loss: 0.0001\n",
      "Epoch: 13220/20000, Loss: 0.0001\n",
      "Epoch: 13230/20000, Loss: 0.0001\n",
      "Epoch: 13240/20000, Loss: 0.0000\n",
      "Epoch: 13250/20000, Loss: 0.0004\n",
      "Epoch: 13260/20000, Loss: 0.0002\n",
      "Epoch: 13270/20000, Loss: 0.0002\n",
      "Epoch: 13280/20000, Loss: 0.0001\n",
      "Epoch: 13290/20000, Loss: 0.0000\n",
      "Epoch: 13300/20000, Loss: 0.0001\n",
      "Epoch: 13310/20000, Loss: 0.0001\n",
      "Epoch: 13320/20000, Loss: 0.0000\n",
      "Epoch: 13330/20000, Loss: 0.0001\n",
      "Epoch: 13340/20000, Loss: 0.0002\n",
      "Epoch: 13350/20000, Loss: 0.0001\n",
      "Epoch: 13360/20000, Loss: 0.0000\n",
      "Epoch: 13370/20000, Loss: 0.0001\n",
      "Epoch: 13380/20000, Loss: 0.0001\n",
      "Epoch: 13390/20000, Loss: 0.0000\n",
      "Epoch: 13400/20000, Loss: 0.0001\n",
      "Epoch: 13410/20000, Loss: 0.0001\n",
      "Epoch: 13420/20000, Loss: 0.0000\n",
      "Epoch: 13430/20000, Loss: 0.0003\n",
      "Epoch: 13440/20000, Loss: 0.0001\n",
      "Epoch: 13450/20000, Loss: 0.0000\n",
      "Epoch: 13460/20000, Loss: 0.0001\n",
      "Epoch: 13470/20000, Loss: 0.0001\n",
      "Epoch: 13480/20000, Loss: 0.0003\n",
      "Epoch: 13490/20000, Loss: 0.0001\n",
      "Epoch: 13500/20000, Loss: 0.0000\n",
      "Epoch: 13510/20000, Loss: 0.0001\n",
      "Epoch: 13520/20000, Loss: 0.0001\n",
      "Epoch: 13530/20000, Loss: 0.0001\n",
      "Epoch: 13540/20000, Loss: 0.0000\n",
      "Epoch: 13550/20000, Loss: 0.0001\n",
      "Epoch: 13560/20000, Loss: 0.0002\n",
      "Epoch: 13570/20000, Loss: 0.0001\n",
      "Epoch: 13580/20000, Loss: 0.0001\n",
      "Epoch: 13590/20000, Loss: 0.0001\n",
      "Epoch: 13600/20000, Loss: 0.0001\n",
      "Epoch: 13610/20000, Loss: 0.0000\n",
      "Epoch: 13620/20000, Loss: 0.0001\n",
      "Epoch: 13630/20000, Loss: 0.0000\n",
      "Epoch: 13640/20000, Loss: 0.0000\n",
      "Epoch: 13650/20000, Loss: 0.0002\n",
      "Epoch: 13660/20000, Loss: 0.0002\n",
      "Epoch: 13670/20000, Loss: 0.0002\n",
      "Epoch: 13680/20000, Loss: 0.0001\n",
      "Epoch: 13690/20000, Loss: 0.0001\n",
      "Epoch: 13700/20000, Loss: 0.0001\n",
      "Epoch: 13710/20000, Loss: 0.0001\n",
      "Epoch: 13720/20000, Loss: 0.0000\n",
      "Epoch: 13730/20000, Loss: 0.0000\n",
      "Epoch: 13740/20000, Loss: 0.0003\n",
      "Epoch: 13750/20000, Loss: 0.0002\n",
      "Epoch: 13760/20000, Loss: 0.0002\n",
      "Epoch: 13770/20000, Loss: 0.0001\n",
      "Epoch: 13780/20000, Loss: 0.0000\n",
      "Epoch: 13790/20000, Loss: 0.0001\n",
      "Epoch: 13800/20000, Loss: 0.0000\n",
      "Epoch: 13810/20000, Loss: 0.0001\n",
      "Epoch: 13820/20000, Loss: 0.0002\n",
      "Epoch: 13830/20000, Loss: 0.0001\n",
      "Epoch: 13840/20000, Loss: 0.0001\n",
      "Epoch: 13850/20000, Loss: 0.0000\n",
      "Epoch: 13860/20000, Loss: 0.0002\n",
      "Epoch: 13870/20000, Loss: 0.0000\n",
      "Epoch: 13880/20000, Loss: 0.0000\n",
      "Epoch: 13890/20000, Loss: 0.0001\n",
      "Epoch: 13900/20000, Loss: 0.0001\n",
      "Epoch: 13910/20000, Loss: 0.0001\n",
      "Epoch: 13920/20000, Loss: 0.0000\n",
      "Epoch: 13930/20000, Loss: 0.0001\n",
      "Epoch: 13940/20000, Loss: 0.0003\n",
      "Epoch: 13950/20000, Loss: 0.0002\n",
      "Epoch: 13960/20000, Loss: 0.0002\n",
      "Epoch: 13970/20000, Loss: 0.0001\n",
      "Epoch: 13980/20000, Loss: 0.0000\n",
      "Epoch: 13990/20000, Loss: 0.0001\n",
      "Epoch: 14000/20000, Loss: 0.0000\n",
      "Epoch: 14010/20000, Loss: 0.0000\n",
      "Epoch: 14020/20000, Loss: 0.0002\n",
      "Epoch: 14030/20000, Loss: 0.0000\n",
      "Epoch: 14040/20000, Loss: 0.0001\n",
      "Epoch: 14050/20000, Loss: 0.0001\n",
      "Epoch: 14060/20000, Loss: 0.0000\n",
      "Epoch: 14070/20000, Loss: 0.0001\n",
      "Epoch: 14080/20000, Loss: 0.0000\n",
      "Epoch: 14090/20000, Loss: 0.0000\n",
      "Epoch: 14100/20000, Loss: 0.0002\n",
      "Epoch: 14110/20000, Loss: 0.0000\n",
      "Epoch: 14120/20000, Loss: 0.0001\n",
      "Epoch: 14130/20000, Loss: 0.0002\n",
      "Epoch: 14140/20000, Loss: 0.0000\n",
      "Epoch: 14150/20000, Loss: 0.0001\n",
      "Epoch: 14160/20000, Loss: 0.0001\n",
      "Epoch: 14170/20000, Loss: 0.0000\n",
      "Epoch: 14180/20000, Loss: 0.0000\n",
      "Epoch: 14190/20000, Loss: 0.0006\n",
      "Epoch: 14200/20000, Loss: 0.0004\n",
      "Epoch: 14210/20000, Loss: 0.0002\n",
      "Epoch: 14220/20000, Loss: 0.0001\n",
      "Epoch: 14230/20000, Loss: 0.0001\n",
      "Epoch: 14240/20000, Loss: 0.0000\n",
      "Epoch: 14250/20000, Loss: 0.0000\n",
      "Epoch: 14260/20000, Loss: 0.0002\n",
      "Epoch: 14270/20000, Loss: 0.0001\n",
      "Epoch: 14280/20000, Loss: 0.0000\n",
      "Epoch: 14290/20000, Loss: 0.0001\n",
      "Epoch: 14300/20000, Loss: 0.0000\n",
      "Epoch: 14310/20000, Loss: 0.0002\n",
      "Epoch: 14320/20000, Loss: 0.0000\n",
      "Epoch: 14330/20000, Loss: 0.0001\n",
      "Epoch: 14340/20000, Loss: 0.0001\n",
      "Epoch: 14350/20000, Loss: 0.0000\n",
      "Epoch: 14360/20000, Loss: 0.0001\n",
      "Epoch: 14370/20000, Loss: 0.0003\n",
      "Epoch: 14380/20000, Loss: 0.0001\n",
      "Epoch: 14390/20000, Loss: 0.0001\n",
      "Epoch: 14400/20000, Loss: 0.0000\n",
      "Epoch: 14410/20000, Loss: 0.0002\n",
      "Epoch: 14420/20000, Loss: 0.0001\n",
      "Epoch: 14430/20000, Loss: 0.0002\n",
      "Epoch: 14440/20000, Loss: 0.0000\n",
      "Epoch: 14450/20000, Loss: 0.0002\n",
      "Epoch: 14460/20000, Loss: 0.0000\n",
      "Epoch: 14470/20000, Loss: 0.0001\n",
      "Epoch: 14480/20000, Loss: 0.0001\n",
      "Epoch: 14490/20000, Loss: 0.0001\n",
      "Epoch: 14500/20000, Loss: 0.0001\n",
      "Epoch: 14510/20000, Loss: 0.0000\n",
      "Epoch: 14520/20000, Loss: 0.0001\n",
      "Epoch: 14530/20000, Loss: 0.0002\n",
      "Epoch: 14540/20000, Loss: 0.0001\n",
      "Epoch: 14550/20000, Loss: 0.0001\n",
      "Epoch: 14560/20000, Loss: 0.0001\n",
      "Epoch: 14570/20000, Loss: 0.0000\n",
      "Epoch: 14580/20000, Loss: 0.0001\n",
      "Epoch: 14590/20000, Loss: 0.0002\n",
      "Epoch: 14600/20000, Loss: 0.0000\n",
      "Epoch: 14610/20000, Loss: 0.0001\n",
      "Epoch: 14620/20000, Loss: 0.0001\n",
      "Epoch: 14630/20000, Loss: 0.0000\n",
      "Epoch: 14640/20000, Loss: 0.0002\n",
      "Epoch: 14650/20000, Loss: 0.0000\n",
      "Epoch: 14660/20000, Loss: 0.0001\n",
      "Epoch: 14670/20000, Loss: 0.0001\n",
      "Epoch: 14680/20000, Loss: 0.0000\n",
      "Epoch: 14690/20000, Loss: 0.0001\n",
      "Epoch: 14700/20000, Loss: 0.0003\n",
      "Epoch: 14710/20000, Loss: 0.0001\n",
      "Epoch: 14720/20000, Loss: 0.0000\n",
      "Epoch: 14730/20000, Loss: 0.0001\n",
      "Epoch: 14740/20000, Loss: 0.0001\n",
      "Epoch: 14750/20000, Loss: 0.0000\n",
      "Epoch: 14760/20000, Loss: 0.0000\n",
      "Epoch: 14770/20000, Loss: 0.0005\n",
      "Epoch: 14780/20000, Loss: 0.0003\n",
      "Epoch: 14790/20000, Loss: 0.0002\n",
      "Epoch: 14800/20000, Loss: 0.0001\n",
      "Epoch: 14810/20000, Loss: 0.0000\n",
      "Epoch: 14820/20000, Loss: 0.0000\n",
      "Epoch: 14830/20000, Loss: 0.0002\n",
      "Epoch: 14840/20000, Loss: 0.0001\n",
      "Epoch: 14850/20000, Loss: 0.0000\n",
      "Epoch: 14860/20000, Loss: 0.0001\n",
      "Epoch: 14870/20000, Loss: 0.0000\n",
      "Epoch: 14880/20000, Loss: 0.0000\n",
      "Epoch: 14890/20000, Loss: 0.0004\n",
      "Epoch: 14900/20000, Loss: 0.0001\n",
      "Epoch: 14910/20000, Loss: 0.0001\n",
      "Epoch: 14920/20000, Loss: 0.0000\n",
      "Epoch: 14930/20000, Loss: 0.0001\n",
      "Epoch: 14940/20000, Loss: 0.0000\n",
      "Epoch: 14950/20000, Loss: 0.0001\n",
      "Epoch: 14960/20000, Loss: 0.0001\n",
      "Epoch: 14970/20000, Loss: 0.0001\n",
      "Epoch: 14980/20000, Loss: 0.0001\n",
      "Epoch: 14990/20000, Loss: 0.0001\n",
      "Epoch: 15000/20000, Loss: 0.0001\n",
      "Epoch: 15010/20000, Loss: 0.0001\n",
      "Epoch: 15020/20000, Loss: 0.0000\n",
      "Epoch: 15030/20000, Loss: 0.0003\n",
      "Epoch: 15040/20000, Loss: 0.0001\n",
      "Epoch: 15050/20000, Loss: 0.0000\n",
      "Epoch: 15060/20000, Loss: 0.0001\n",
      "Epoch: 15070/20000, Loss: 0.0001\n",
      "Epoch: 15080/20000, Loss: 0.0003\n",
      "Epoch: 15090/20000, Loss: 0.0001\n",
      "Epoch: 15100/20000, Loss: 0.0000\n",
      "Epoch: 15110/20000, Loss: 0.0001\n",
      "Epoch: 15120/20000, Loss: 0.0000\n",
      "Epoch: 15130/20000, Loss: 0.0002\n",
      "Epoch: 15140/20000, Loss: 0.0000\n",
      "Epoch: 15150/20000, Loss: 0.0001\n",
      "Epoch: 15160/20000, Loss: 0.0000\n",
      "Epoch: 15170/20000, Loss: 0.0000\n",
      "Epoch: 15180/20000, Loss: 0.0004\n",
      "Epoch: 15190/20000, Loss: 0.0001\n",
      "Epoch: 15200/20000, Loss: 0.0001\n",
      "Epoch: 15210/20000, Loss: 0.0000\n",
      "Epoch: 15220/20000, Loss: 0.0001\n",
      "Epoch: 15230/20000, Loss: 0.0001\n",
      "Epoch: 15240/20000, Loss: 0.0001\n",
      "Epoch: 15250/20000, Loss: 0.0000\n",
      "Epoch: 15260/20000, Loss: 0.0000\n",
      "Epoch: 15270/20000, Loss: 0.0001\n",
      "Epoch: 15280/20000, Loss: 0.0006\n",
      "Epoch: 15290/20000, Loss: 0.0003\n",
      "Epoch: 15300/20000, Loss: 0.0002\n",
      "Epoch: 15310/20000, Loss: 0.0002\n",
      "Epoch: 15320/20000, Loss: 0.0001\n",
      "Epoch: 15330/20000, Loss: 0.0000\n",
      "Epoch: 15340/20000, Loss: 0.0001\n",
      "Epoch: 15350/20000, Loss: 0.0000\n",
      "Epoch: 15360/20000, Loss: 0.0001\n",
      "Epoch: 15370/20000, Loss: 0.0000\n",
      "Epoch: 15380/20000, Loss: 0.0001\n",
      "Epoch: 15390/20000, Loss: 0.0002\n",
      "Epoch: 15400/20000, Loss: 0.0000\n",
      "Epoch: 15410/20000, Loss: 0.0001\n",
      "Epoch: 15420/20000, Loss: 0.0001\n",
      "Epoch: 15430/20000, Loss: 0.0000\n",
      "Epoch: 15440/20000, Loss: 0.0001\n",
      "Epoch: 15450/20000, Loss: 0.0001\n",
      "Epoch: 15460/20000, Loss: 0.0002\n",
      "Epoch: 15470/20000, Loss: 0.0002\n",
      "Epoch: 15480/20000, Loss: 0.0001\n",
      "Epoch: 15490/20000, Loss: 0.0000\n",
      "Epoch: 15500/20000, Loss: 0.0001\n",
      "Epoch: 15510/20000, Loss: 0.0001\n",
      "Epoch: 15520/20000, Loss: 0.0000\n",
      "Epoch: 15530/20000, Loss: 0.0001\n",
      "Epoch: 15540/20000, Loss: 0.0002\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15550/20000, Loss: 0.0002\n",
      "Epoch: 15560/20000, Loss: 0.0002\n",
      "Epoch: 15570/20000, Loss: 0.0001\n",
      "Epoch: 15580/20000, Loss: 0.0000\n",
      "Epoch: 15590/20000, Loss: 0.0001\n",
      "Epoch: 15600/20000, Loss: 0.0000\n",
      "Epoch: 15610/20000, Loss: 0.0001\n",
      "Epoch: 15620/20000, Loss: 0.0001\n",
      "Epoch: 15630/20000, Loss: 0.0000\n",
      "Epoch: 15640/20000, Loss: 0.0001\n",
      "Epoch: 15650/20000, Loss: 0.0001\n",
      "Epoch: 15660/20000, Loss: 0.0000\n",
      "Epoch: 15670/20000, Loss: 0.0000\n",
      "Epoch: 15680/20000, Loss: 0.0001\n",
      "Epoch: 15690/20000, Loss: 0.0004\n",
      "Epoch: 15700/20000, Loss: 0.0001\n",
      "Epoch: 15710/20000, Loss: 0.0001\n",
      "Epoch: 15720/20000, Loss: 0.0001\n",
      "Epoch: 15730/20000, Loss: 0.0000\n",
      "Epoch: 15740/20000, Loss: 0.0000\n",
      "Epoch: 15750/20000, Loss: 0.0000\n",
      "Epoch: 15760/20000, Loss: 0.0001\n",
      "Epoch: 15770/20000, Loss: 0.0001\n",
      "Epoch: 15780/20000, Loss: 0.0001\n",
      "Epoch: 15790/20000, Loss: 0.0001\n",
      "Epoch: 15800/20000, Loss: 0.0001\n",
      "Epoch: 15810/20000, Loss: 0.0002\n",
      "Epoch: 15820/20000, Loss: 0.0000\n",
      "Epoch: 15830/20000, Loss: 0.0001\n",
      "Epoch: 15840/20000, Loss: 0.0000\n",
      "Epoch: 15850/20000, Loss: 0.0001\n",
      "Epoch: 15860/20000, Loss: 0.0005\n",
      "Epoch: 15870/20000, Loss: 0.0003\n",
      "Epoch: 15880/20000, Loss: 0.0002\n",
      "Epoch: 15890/20000, Loss: 0.0002\n",
      "Epoch: 15900/20000, Loss: 0.0002\n",
      "Epoch: 15910/20000, Loss: 0.0001\n",
      "Epoch: 15920/20000, Loss: 0.0000\n",
      "Epoch: 15930/20000, Loss: 0.0000\n",
      "Epoch: 15940/20000, Loss: 0.0000\n",
      "Epoch: 15950/20000, Loss: 0.0001\n",
      "Epoch: 15960/20000, Loss: 0.0000\n",
      "Epoch: 15970/20000, Loss: 0.0000\n",
      "Epoch: 15980/20000, Loss: 0.0003\n",
      "Epoch: 15990/20000, Loss: 0.0000\n",
      "Epoch: 16000/20000, Loss: 0.0001\n",
      "Epoch: 16010/20000, Loss: 0.0000\n",
      "Epoch: 16020/20000, Loss: 0.0002\n",
      "Epoch: 16030/20000, Loss: 0.0000\n",
      "Epoch: 16040/20000, Loss: 0.0001\n",
      "Epoch: 16050/20000, Loss: 0.0000\n",
      "Epoch: 16060/20000, Loss: 0.0001\n",
      "Epoch: 16070/20000, Loss: 0.0004\n",
      "Epoch: 16080/20000, Loss: 0.0001\n",
      "Epoch: 16090/20000, Loss: 0.0001\n",
      "Epoch: 16100/20000, Loss: 0.0000\n",
      "Epoch: 16110/20000, Loss: 0.0000\n",
      "Epoch: 16120/20000, Loss: 0.0001\n",
      "Epoch: 16130/20000, Loss: 0.0001\n",
      "Epoch: 16140/20000, Loss: 0.0001\n",
      "Epoch: 16150/20000, Loss: 0.0001\n",
      "Epoch: 16160/20000, Loss: 0.0001\n",
      "Epoch: 16170/20000, Loss: 0.0001\n",
      "Epoch: 16180/20000, Loss: 0.0001\n",
      "Epoch: 16190/20000, Loss: 0.0000\n",
      "Epoch: 16200/20000, Loss: 0.0000\n",
      "Epoch: 16210/20000, Loss: 0.0000\n",
      "Epoch: 16220/20000, Loss: 0.0001\n",
      "Epoch: 16230/20000, Loss: 0.0002\n",
      "Epoch: 16240/20000, Loss: 0.0001\n",
      "Epoch: 16250/20000, Loss: 0.0000\n",
      "Epoch: 16260/20000, Loss: 0.0001\n",
      "Epoch: 16270/20000, Loss: 0.0001\n",
      "Epoch: 16280/20000, Loss: 0.0001\n",
      "Epoch: 16290/20000, Loss: 0.0001\n",
      "Epoch: 16300/20000, Loss: 0.0001\n",
      "Epoch: 16310/20000, Loss: 0.0001\n",
      "Epoch: 16320/20000, Loss: 0.0000\n",
      "Epoch: 16330/20000, Loss: 0.0001\n",
      "Epoch: 16340/20000, Loss: 0.0002\n",
      "Epoch: 16350/20000, Loss: 0.0001\n",
      "Epoch: 16360/20000, Loss: 0.0001\n",
      "Epoch: 16370/20000, Loss: 0.0000\n",
      "Epoch: 16380/20000, Loss: 0.0001\n",
      "Epoch: 16390/20000, Loss: 0.0001\n",
      "Epoch: 16400/20000, Loss: 0.0001\n",
      "Epoch: 16410/20000, Loss: 0.0001\n",
      "Epoch: 16420/20000, Loss: 0.0001\n",
      "Epoch: 16430/20000, Loss: 0.0002\n",
      "Epoch: 16440/20000, Loss: 0.0002\n",
      "Epoch: 16450/20000, Loss: 0.0002\n",
      "Epoch: 16460/20000, Loss: 0.0001\n",
      "Epoch: 16470/20000, Loss: 0.0000\n",
      "Epoch: 16480/20000, Loss: 0.0000\n",
      "Epoch: 16490/20000, Loss: 0.0001\n",
      "Epoch: 16500/20000, Loss: 0.0000\n",
      "Epoch: 16510/20000, Loss: 0.0001\n",
      "Epoch: 16520/20000, Loss: 0.0001\n",
      "Epoch: 16530/20000, Loss: 0.0001\n",
      "Epoch: 16540/20000, Loss: 0.0000\n",
      "Epoch: 16550/20000, Loss: 0.0000\n",
      "Epoch: 16560/20000, Loss: 0.0003\n",
      "Epoch: 16570/20000, Loss: 0.0000\n",
      "Epoch: 16580/20000, Loss: 0.0000\n",
      "Epoch: 16590/20000, Loss: 0.0001\n",
      "Epoch: 16600/20000, Loss: 0.0002\n",
      "Epoch: 16610/20000, Loss: 0.0001\n",
      "Epoch: 16620/20000, Loss: 0.0000\n",
      "Epoch: 16630/20000, Loss: 0.0000\n",
      "Epoch: 16640/20000, Loss: 0.0001\n",
      "Epoch: 16650/20000, Loss: 0.0001\n",
      "Epoch: 16660/20000, Loss: 0.0001\n",
      "Epoch: 16670/20000, Loss: 0.0000\n",
      "Epoch: 16680/20000, Loss: 0.0000\n",
      "Epoch: 16690/20000, Loss: 0.0003\n",
      "Epoch: 16700/20000, Loss: 0.0001\n",
      "Epoch: 16710/20000, Loss: 0.0001\n",
      "Epoch: 16720/20000, Loss: 0.0000\n",
      "Epoch: 16730/20000, Loss: 0.0001\n",
      "Epoch: 16740/20000, Loss: 0.0001\n",
      "Epoch: 16750/20000, Loss: 0.0002\n",
      "Epoch: 16760/20000, Loss: 0.0000\n",
      "Epoch: 16770/20000, Loss: 0.0000\n",
      "Epoch: 16780/20000, Loss: 0.0003\n",
      "Epoch: 16790/20000, Loss: 0.0000\n",
      "Epoch: 16800/20000, Loss: 0.0000\n",
      "Epoch: 16810/20000, Loss: 0.0000\n",
      "Epoch: 16820/20000, Loss: 0.0001\n",
      "Epoch: 16830/20000, Loss: 0.0001\n",
      "Epoch: 16840/20000, Loss: 0.0000\n",
      "Epoch: 16850/20000, Loss: 0.0001\n",
      "Epoch: 16860/20000, Loss: 0.0001\n",
      "Epoch: 16870/20000, Loss: 0.0000\n",
      "Epoch: 16880/20000, Loss: 0.0000\n",
      "Epoch: 16890/20000, Loss: 0.0002\n",
      "Epoch: 16900/20000, Loss: 0.0000\n",
      "Epoch: 16910/20000, Loss: 0.0001\n",
      "Epoch: 16920/20000, Loss: 0.0000\n",
      "Epoch: 16930/20000, Loss: 0.0001\n",
      "Epoch: 16940/20000, Loss: 0.0001\n",
      "Epoch: 16950/20000, Loss: 0.0001\n",
      "Epoch: 16960/20000, Loss: 0.0001\n",
      "Epoch: 16970/20000, Loss: 0.0001\n",
      "Epoch: 16980/20000, Loss: 0.0001\n",
      "Epoch: 16990/20000, Loss: 0.0000\n",
      "Epoch: 17000/20000, Loss: 0.0000\n",
      "Epoch: 17010/20000, Loss: 0.0001\n",
      "Epoch: 17020/20000, Loss: 0.0002\n",
      "Epoch: 17030/20000, Loss: 0.0002\n",
      "Epoch: 17040/20000, Loss: 0.0002\n",
      "Epoch: 17050/20000, Loss: 0.0002\n",
      "Epoch: 17060/20000, Loss: 0.0002\n",
      "Epoch: 17070/20000, Loss: 0.0001\n",
      "Epoch: 17080/20000, Loss: 0.0000\n",
      "Epoch: 17090/20000, Loss: 0.0000\n",
      "Epoch: 17100/20000, Loss: 0.0000\n",
      "Epoch: 17110/20000, Loss: 0.0000\n",
      "Epoch: 17120/20000, Loss: 0.0001\n",
      "Epoch: 17130/20000, Loss: 0.0002\n",
      "Epoch: 17140/20000, Loss: 0.0000\n",
      "Epoch: 17150/20000, Loss: 0.0001\n",
      "Epoch: 17160/20000, Loss: 0.0002\n",
      "Epoch: 17170/20000, Loss: 0.0000\n",
      "Epoch: 17180/20000, Loss: 0.0001\n",
      "Epoch: 17190/20000, Loss: 0.0000\n",
      "Epoch: 17200/20000, Loss: 0.0000\n",
      "Epoch: 17210/20000, Loss: 0.0002\n",
      "Epoch: 17220/20000, Loss: 0.0001\n",
      "Epoch: 17230/20000, Loss: 0.0001\n",
      "Epoch: 17240/20000, Loss: 0.0001\n",
      "Epoch: 17250/20000, Loss: 0.0001\n",
      "Epoch: 17260/20000, Loss: 0.0002\n",
      "Epoch: 17270/20000, Loss: 0.0001\n",
      "Epoch: 17280/20000, Loss: 0.0001\n",
      "Epoch: 17290/20000, Loss: 0.0000\n",
      "Epoch: 17300/20000, Loss: 0.0000\n",
      "Epoch: 17310/20000, Loss: 0.0001\n",
      "Epoch: 17320/20000, Loss: 0.0001\n",
      "Epoch: 17330/20000, Loss: 0.0000\n",
      "Epoch: 17340/20000, Loss: 0.0000\n",
      "Epoch: 17350/20000, Loss: 0.0001\n",
      "Epoch: 17360/20000, Loss: 0.0001\n",
      "Epoch: 17370/20000, Loss: 0.0000\n",
      "Epoch: 17380/20000, Loss: 0.0000\n",
      "Epoch: 17390/20000, Loss: 0.0004\n",
      "Epoch: 17400/20000, Loss: 0.0001\n",
      "Epoch: 17410/20000, Loss: 0.0001\n",
      "Epoch: 17420/20000, Loss: 0.0001\n",
      "Epoch: 17430/20000, Loss: 0.0001\n",
      "Epoch: 17440/20000, Loss: 0.0001\n",
      "Epoch: 17450/20000, Loss: 0.0000\n",
      "Epoch: 17460/20000, Loss: 0.0000\n",
      "Epoch: 17470/20000, Loss: 0.0000\n",
      "Epoch: 17480/20000, Loss: 0.0000\n",
      "Epoch: 17490/20000, Loss: 0.0000\n",
      "Epoch: 17500/20000, Loss: 0.0001\n",
      "Epoch: 17510/20000, Loss: 0.0001\n",
      "Epoch: 17520/20000, Loss: 0.0000\n",
      "Epoch: 17530/20000, Loss: 0.0000\n",
      "Epoch: 17540/20000, Loss: 0.0001\n",
      "Epoch: 17550/20000, Loss: 0.0005\n",
      "Epoch: 17560/20000, Loss: 0.0001\n",
      "Epoch: 17570/20000, Loss: 0.0001\n",
      "Epoch: 17580/20000, Loss: 0.0001\n",
      "Epoch: 17590/20000, Loss: 0.0000\n",
      "Epoch: 17600/20000, Loss: 0.0000\n",
      "Epoch: 17610/20000, Loss: 0.0000\n",
      "Epoch: 17620/20000, Loss: 0.0005\n",
      "Epoch: 17630/20000, Loss: 0.0003\n",
      "Epoch: 17640/20000, Loss: 0.0002\n",
      "Epoch: 17650/20000, Loss: 0.0001\n",
      "Epoch: 17660/20000, Loss: 0.0001\n",
      "Epoch: 17670/20000, Loss: 0.0000\n",
      "Epoch: 17680/20000, Loss: 0.0000\n",
      "Epoch: 17690/20000, Loss: 0.0000\n",
      "Epoch: 17700/20000, Loss: 0.0000\n",
      "Epoch: 17710/20000, Loss: 0.0002\n",
      "Epoch: 17720/20000, Loss: 0.0000\n",
      "Epoch: 17730/20000, Loss: 0.0000\n",
      "Epoch: 17740/20000, Loss: 0.0001\n",
      "Epoch: 17750/20000, Loss: 0.0000\n",
      "Epoch: 17760/20000, Loss: 0.0001\n",
      "Epoch: 17770/20000, Loss: 0.0001\n",
      "Epoch: 17780/20000, Loss: 0.0000\n",
      "Epoch: 17790/20000, Loss: 0.0000\n",
      "Epoch: 17800/20000, Loss: 0.0003\n",
      "Epoch: 17810/20000, Loss: 0.0001\n",
      "Epoch: 17820/20000, Loss: 0.0001\n",
      "Epoch: 17830/20000, Loss: 0.0001\n",
      "Epoch: 17840/20000, Loss: 0.0001\n",
      "Epoch: 17850/20000, Loss: 0.0002\n",
      "Epoch: 17860/20000, Loss: 0.0002\n",
      "Epoch: 17870/20000, Loss: 0.0001\n",
      "Epoch: 17880/20000, Loss: 0.0000\n",
      "Epoch: 17890/20000, Loss: 0.0000\n",
      "Epoch: 17900/20000, Loss: 0.0000\n",
      "Epoch: 17910/20000, Loss: 0.0000\n",
      "Epoch: 17920/20000, Loss: 0.0001\n",
      "Epoch: 17930/20000, Loss: 0.0005\n",
      "Epoch: 17940/20000, Loss: 0.0002\n",
      "Epoch: 17950/20000, Loss: 0.0001\n",
      "Epoch: 17960/20000, Loss: 0.0000\n",
      "Epoch: 17970/20000, Loss: 0.0000\n",
      "Epoch: 17980/20000, Loss: 0.0000\n",
      "Epoch: 17990/20000, Loss: 0.0000\n",
      "Epoch: 18000/20000, Loss: 0.0001\n",
      "Epoch: 18010/20000, Loss: 0.0002\n",
      "Epoch: 18020/20000, Loss: 0.0000\n",
      "Epoch: 18030/20000, Loss: 0.0001\n",
      "Epoch: 18040/20000, Loss: 0.0000\n",
      "Epoch: 18050/20000, Loss: 0.0001\n",
      "Epoch: 18060/20000, Loss: 0.0003\n",
      "Epoch: 18070/20000, Loss: 0.0001\n",
      "Epoch: 18080/20000, Loss: 0.0000\n",
      "Epoch: 18090/20000, Loss: 0.0001\n",
      "Epoch: 18100/20000, Loss: 0.0001\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 18110/20000, Loss: 0.0000\n",
      "Epoch: 18120/20000, Loss: 0.0000\n",
      "Epoch: 18130/20000, Loss: 0.0001\n",
      "Epoch: 18140/20000, Loss: 0.0006\n",
      "Epoch: 18150/20000, Loss: 0.0003\n",
      "Epoch: 18160/20000, Loss: 0.0001\n",
      "Epoch: 18170/20000, Loss: 0.0001\n",
      "Epoch: 18180/20000, Loss: 0.0000\n",
      "Epoch: 18190/20000, Loss: 0.0001\n",
      "Epoch: 18200/20000, Loss: 0.0003\n",
      "Epoch: 18210/20000, Loss: 0.0001\n",
      "Epoch: 18220/20000, Loss: 0.0000\n",
      "Epoch: 18230/20000, Loss: 0.0000\n",
      "Epoch: 18240/20000, Loss: 0.0001\n",
      "Epoch: 18250/20000, Loss: 0.0002\n",
      "Epoch: 18260/20000, Loss: 0.0000\n",
      "Epoch: 18270/20000, Loss: 0.0000\n",
      "Epoch: 18280/20000, Loss: 0.0000\n",
      "Epoch: 18290/20000, Loss: 0.0001\n",
      "Epoch: 18300/20000, Loss: 0.0000\n",
      "Epoch: 18310/20000, Loss: 0.0000\n",
      "Epoch: 18320/20000, Loss: 0.0000\n",
      "Epoch: 18330/20000, Loss: 0.0000\n",
      "Epoch: 18340/20000, Loss: 0.0002\n",
      "Epoch: 18350/20000, Loss: 0.0000\n",
      "Epoch: 18360/20000, Loss: 0.0000\n",
      "Epoch: 18370/20000, Loss: 0.0000\n",
      "Epoch: 18380/20000, Loss: 0.0001\n",
      "Epoch: 18390/20000, Loss: 0.0000\n",
      "Epoch: 18400/20000, Loss: 0.0001\n",
      "Epoch: 18410/20000, Loss: 0.0000\n",
      "Epoch: 18420/20000, Loss: 0.0001\n",
      "Epoch: 18430/20000, Loss: 0.0002\n",
      "Epoch: 18440/20000, Loss: 0.0000\n",
      "Epoch: 18450/20000, Loss: 0.0001\n",
      "Epoch: 18460/20000, Loss: 0.0001\n",
      "Epoch: 18470/20000, Loss: 0.0001\n",
      "Epoch: 18480/20000, Loss: 0.0001\n",
      "Epoch: 18490/20000, Loss: 0.0001\n",
      "Epoch: 18500/20000, Loss: 0.0000\n",
      "Epoch: 18510/20000, Loss: 0.0000\n",
      "Epoch: 18520/20000, Loss: 0.0003\n",
      "Epoch: 18530/20000, Loss: 0.0001\n",
      "Epoch: 18540/20000, Loss: 0.0002\n",
      "Epoch: 18550/20000, Loss: 0.0001\n",
      "Epoch: 18560/20000, Loss: 0.0001\n",
      "Epoch: 18570/20000, Loss: 0.0000\n",
      "Epoch: 18580/20000, Loss: 0.0000\n",
      "Epoch: 18590/20000, Loss: 0.0000\n",
      "Epoch: 18600/20000, Loss: 0.0000\n",
      "Epoch: 18610/20000, Loss: 0.0000\n",
      "Epoch: 18620/20000, Loss: 0.0001\n",
      "Epoch: 18630/20000, Loss: 0.0001\n",
      "Epoch: 18640/20000, Loss: 0.0000\n",
      "Epoch: 18650/20000, Loss: 0.0001\n",
      "Epoch: 18660/20000, Loss: 0.0003\n",
      "Epoch: 18670/20000, Loss: 0.0001\n",
      "Epoch: 18680/20000, Loss: 0.0000\n",
      "Epoch: 18690/20000, Loss: 0.0001\n",
      "Epoch: 18700/20000, Loss: 0.0001\n",
      "Epoch: 18710/20000, Loss: 0.0000\n",
      "Epoch: 18720/20000, Loss: 0.0000\n",
      "Epoch: 18730/20000, Loss: 0.0002\n",
      "Epoch: 18740/20000, Loss: 0.0000\n",
      "Epoch: 18750/20000, Loss: 0.0001\n",
      "Epoch: 18760/20000, Loss: 0.0000\n",
      "Epoch: 18770/20000, Loss: 0.0001\n",
      "Epoch: 18780/20000, Loss: 0.0002\n",
      "Epoch: 18790/20000, Loss: 0.0001\n",
      "Epoch: 18800/20000, Loss: 0.0000\n",
      "Epoch: 18810/20000, Loss: 0.0000\n",
      "Epoch: 18820/20000, Loss: 0.0000\n",
      "Epoch: 18830/20000, Loss: 0.0005\n",
      "Epoch: 18840/20000, Loss: 0.0002\n",
      "Epoch: 18850/20000, Loss: 0.0002\n",
      "Epoch: 18860/20000, Loss: 0.0001\n",
      "Epoch: 18870/20000, Loss: 0.0001\n",
      "Epoch: 18880/20000, Loss: 0.0001\n",
      "Epoch: 18890/20000, Loss: 0.0000\n",
      "Epoch: 18900/20000, Loss: 0.0000\n",
      "Epoch: 18910/20000, Loss: 0.0000\n",
      "Epoch: 18920/20000, Loss: 0.0016\n",
      "Epoch: 18930/20000, Loss: 0.0003\n",
      "Epoch: 18940/20000, Loss: 0.0001\n",
      "Epoch: 18950/20000, Loss: 0.0001\n",
      "Epoch: 18960/20000, Loss: 0.0001\n",
      "Epoch: 18970/20000, Loss: 0.0000\n",
      "Epoch: 18980/20000, Loss: 0.0000\n",
      "Epoch: 18990/20000, Loss: 0.0000\n",
      "Epoch: 19000/20000, Loss: 0.0000\n",
      "Epoch: 19010/20000, Loss: 0.0001\n",
      "Epoch: 19020/20000, Loss: 0.0003\n",
      "Epoch: 19030/20000, Loss: 0.0001\n",
      "Epoch: 19040/20000, Loss: 0.0000\n",
      "Epoch: 19050/20000, Loss: 0.0000\n",
      "Epoch: 19060/20000, Loss: 0.0000\n",
      "Epoch: 19070/20000, Loss: 0.0001\n",
      "Epoch: 19080/20000, Loss: 0.0002\n",
      "Epoch: 19090/20000, Loss: 0.0001\n",
      "Epoch: 19100/20000, Loss: 0.0001\n",
      "Epoch: 19110/20000, Loss: 0.0000\n",
      "Epoch: 19120/20000, Loss: 0.0000\n",
      "Epoch: 19130/20000, Loss: 0.0001\n",
      "Epoch: 19140/20000, Loss: 0.0002\n",
      "Epoch: 19150/20000, Loss: 0.0000\n",
      "Epoch: 19160/20000, Loss: 0.0000\n",
      "Epoch: 19170/20000, Loss: 0.0000\n",
      "Epoch: 19180/20000, Loss: 0.0000\n",
      "Epoch: 19190/20000, Loss: 0.0001\n",
      "Epoch: 19200/20000, Loss: 0.0003\n",
      "Epoch: 19210/20000, Loss: 0.0000\n",
      "Epoch: 19220/20000, Loss: 0.0001\n",
      "Epoch: 19230/20000, Loss: 0.0000\n",
      "Epoch: 19240/20000, Loss: 0.0000\n",
      "Epoch: 19250/20000, Loss: 0.0000\n",
      "Epoch: 19260/20000, Loss: 0.0001\n",
      "Epoch: 19270/20000, Loss: 0.0002\n",
      "Epoch: 19280/20000, Loss: 0.0002\n",
      "Epoch: 19290/20000, Loss: 0.0001\n",
      "Epoch: 19300/20000, Loss: 0.0001\n",
      "Epoch: 19310/20000, Loss: 0.0000\n",
      "Epoch: 19320/20000, Loss: 0.0000\n",
      "Epoch: 19330/20000, Loss: 0.0000\n",
      "Epoch: 19340/20000, Loss: 0.0000\n",
      "Epoch: 19350/20000, Loss: 0.0001\n",
      "Epoch: 19360/20000, Loss: 0.0003\n",
      "Epoch: 19370/20000, Loss: 0.0001\n",
      "Epoch: 19380/20000, Loss: 0.0000\n",
      "Epoch: 19390/20000, Loss: 0.0000\n",
      "Epoch: 19400/20000, Loss: 0.0000\n",
      "Epoch: 19410/20000, Loss: 0.0001\n",
      "Epoch: 19420/20000, Loss: 0.0004\n",
      "Epoch: 19430/20000, Loss: 0.0001\n",
      "Epoch: 19440/20000, Loss: 0.0000\n",
      "Epoch: 19450/20000, Loss: 0.0000\n",
      "Epoch: 19460/20000, Loss: 0.0000\n",
      "Epoch: 19470/20000, Loss: 0.0001\n",
      "Epoch: 19480/20000, Loss: 0.0006\n",
      "Epoch: 19490/20000, Loss: 0.0002\n",
      "Epoch: 19500/20000, Loss: 0.0000\n",
      "Epoch: 19510/20000, Loss: 0.0001\n",
      "Epoch: 19520/20000, Loss: 0.0000\n",
      "Epoch: 19530/20000, Loss: 0.0000\n",
      "Epoch: 19540/20000, Loss: 0.0000\n",
      "Epoch: 19550/20000, Loss: 0.0003\n",
      "Epoch: 19560/20000, Loss: 0.0002\n",
      "Epoch: 19570/20000, Loss: 0.0001\n",
      "Epoch: 19580/20000, Loss: 0.0001\n",
      "Epoch: 19590/20000, Loss: 0.0000\n",
      "Epoch: 19600/20000, Loss: 0.0000\n",
      "Epoch: 19610/20000, Loss: 0.0000\n",
      "Epoch: 19620/20000, Loss: 0.0001\n",
      "Epoch: 19630/20000, Loss: 0.0003\n",
      "Epoch: 19640/20000, Loss: 0.0001\n",
      "Epoch: 19650/20000, Loss: 0.0001\n",
      "Epoch: 19660/20000, Loss: 0.0000\n",
      "Epoch: 19670/20000, Loss: 0.0000\n",
      "Epoch: 19680/20000, Loss: 0.0001\n",
      "Epoch: 19690/20000, Loss: 0.0006\n",
      "Epoch: 19700/20000, Loss: 0.0002\n",
      "Epoch: 19710/20000, Loss: 0.0000\n",
      "Epoch: 19720/20000, Loss: 0.0000\n",
      "Epoch: 19730/20000, Loss: 0.0000\n",
      "Epoch: 19740/20000, Loss: 0.0000\n",
      "Epoch: 19750/20000, Loss: 0.0001\n",
      "Epoch: 19760/20000, Loss: 0.0005\n",
      "Epoch: 19770/20000, Loss: 0.0002\n",
      "Epoch: 19780/20000, Loss: 0.0000\n",
      "Epoch: 19790/20000, Loss: 0.0000\n",
      "Epoch: 19800/20000, Loss: 0.0000\n",
      "Epoch: 19810/20000, Loss: 0.0000\n",
      "Epoch: 19820/20000, Loss: 0.0002\n",
      "Epoch: 19830/20000, Loss: 0.0000\n",
      "Epoch: 19840/20000, Loss: 0.0001\n",
      "Epoch: 19850/20000, Loss: 0.0000\n",
      "Epoch: 19860/20000, Loss: 0.0000\n",
      "Epoch: 19870/20000, Loss: 0.0000\n",
      "Epoch: 19880/20000, Loss: 0.0003\n",
      "Epoch: 19890/20000, Loss: 0.0001\n",
      "Epoch: 19900/20000, Loss: 0.0001\n",
      "Epoch: 19910/20000, Loss: 0.0001\n",
      "Epoch: 19920/20000, Loss: 0.0000\n",
      "Epoch: 19930/20000, Loss: 0.0001\n",
      "Epoch: 19940/20000, Loss: 0.0004\n",
      "Epoch: 19950/20000, Loss: 0.0001\n",
      "Epoch: 19960/20000, Loss: 0.0001\n",
      "Epoch: 19970/20000, Loss: 0.0000\n",
      "Epoch: 19980/20000, Loss: 0.0000\n",
      "Epoch: 19990/20000, Loss: 0.0000\n",
      "Epoch: 20000/20000, Loss: 0.0003\n"
     ]
    }
   ],
   "source": [
    "# Create RNN instance\n",
    "rnn = RNN(input_size, hidden_size, output_size)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(rnn.parameters(), lr=0.01)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Set initial hidden state\n",
    "    hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "    # Forward pass\n",
    "    output, hidden = rnn(input_tensor, hidden)\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch+1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch+1}/{num_epochs}, Loss: {loss.item():.4f}')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "9391896d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "final_time_output torch.Size([20, 256])\n",
      "torch.Size([256])\n",
      "prediction (256,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  1.87288498878479 %\n"
     ]
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    prediction, _ = rnn(test_tensor, hidden_pred)\n",
    "\n",
    "final_time_output = prediction[-1, :]\n",
    "print(\"final_time_output\", final_time_output.shape)\n",
    "\n",
    "final_time_output1 = final_time_output[-1, :]\n",
    "print(final_time_output1.shape)\n",
    "\n",
    "final_out = final_time_output1.detach().numpy().reshape(-1,)\n",
    "final_true = u[:,-1].reshape(-1,1)\n",
    "\n",
    "print(\"prediction\", final_out.shape)\n",
    "plt.plot(x.T, final_out)\n",
    "plt.plot(x.T, final_true)\n",
    "plt.show()\n",
    "# # quit()\n",
    "\n",
    "# # # Flatten prediction tensor\n",
    "# prediction = prediction.view(-1).numpy()\n",
    "# print(prediction.shape)\n",
    "\n",
    "# # # Convert NumPy arrays to PyTorch tensors\n",
    "final_out_tensor = torch.from_numpy(final_out)\n",
    "final_true_tensor = torch.from_numpy(final_true)\n",
    "\n",
    "# print(final_out_tensor.shape)\n",
    "# print(final_true_tensor.shape)\n",
    "\n",
    "# # # Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean((final_out_tensor - final_true_tensor)**2)/ torch.mean(final_true_tensor**2)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5450fa61",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
